*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{overscroll-behavior:none;height:100dvh;overflow:hidden}body{color:#333;background:#f0f2f5;flex-direction:column;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-size:14px;line-height:1.5;display:flex;overflow:hidden}#root{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}a{color:#1a73e8;text-decoration:none}a:hover{text-decoration:underline}.top-header{color:#fff;z-index:100;background:#1a73e8;flex-shrink:0;height:56px;position:relative;box-shadow:0 2px 4px #0000001a}.header-inner{justify-content:space-between;align-items:center;max-width:max(768px,75vw);height:100%;margin:0 auto;padding:0 24px;display:flex}.logo{color:#fff;font-size:20px;font-weight:700;text-decoration:none}.header-nav{align-items:center;gap:20px;display:flex}.header-nav a{color:#ffffffe6;font-size:14px}.header-nav a:hover{color:#fff;text-decoration:none}.header-buttons{align-items:center;gap:6px;display:flex}.vs-header-link{color:#ffffffe6;border-radius:6px;padding:4px 10px;font-size:14px;text-decoration:none}.vs-header-link:hover{color:#fff;background:#ffffff26;text-decoration:none}.header-icon-btn{cursor:pointer;color:#ffffffd9;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:6px;transition:background .15s,color .15s;display:flex}.header-icon-btn:hover{color:#fff;background:#ffffff26}.vs-pmenu{position:relative}.vs-pmenu-trigger{cursor:pointer;color:#1f2937;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:4px 6px;font-family:inherit;display:flex}.vs-pmenu-trigger:hover{background:#f1f3f4}.vs-pmenu-uname{color:#5f6368;text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:13px;overflow:hidden}.vs-pmenu-av-sm{color:#1a73e8;background:#e8f0fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:600;display:flex}img.vs-pmenu-av-sm{object-fit:cover;display:block}.vs-pmenu-panel{z-index:300;color:#1f2937;transform-origin:100% 0;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:320px;animation:.16s ease-in-out vs-pop-in;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 12px 32px #0000002e}@keyframes vs-pop-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.vs-pmenu-top{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.vs-pmenu-org{color:#374151;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.vs-pmenu-signout{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:4px 6px;font-family:inherit;font-size:13px}.vs-pmenu-signout:hover{color:#1f2937;background:#f1f3f4}.vs-pmenu-body{align-items:flex-start;gap:14px;padding:16px;display:flex}.vs-pmenu-av{color:#1a73e8;background:#e8f0fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:24px;font-weight:600;display:flex}img.vs-pmenu-av{object-fit:cover;display:block}.vs-pmenu-info{min-width:0}.vs-pmenu-name{color:#1f2937;overflow-wrap:anywhere;margin:2px 0;font-size:16px;font-weight:600}.vs-pmenu-email{color:#6b7280;overflow-wrap:anywhere;margin:0 0 6px;font-size:13px}.vs-pmenu-link{color:#1a73e8;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.vs-pmenu-link:hover{text-decoration:underline}@media (width<=480px){.vs-pmenu-panel{width:min(320px,100vw - 24px)}}.sidebar-hamburger{flex-direction:column;justify-content:center;gap:4px;display:none}.sidebar-hamburger span{background:#fff;border-radius:2px;width:18px;height:2px;display:block}@media (width<=768px){.sidebar-hamburger{display:flex}.vs-pmenu-uname{display:none}.header-nav{z-index:200;background:#1a73e8;flex-direction:column;align-items:stretch;gap:0;min-width:180px;padding:6px 0;display:none;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #0003}.header-nav.open{display:flex}.header-nav a,.header-nav .btn-link{text-align:left;width:100%;padding:10px 20px}.header-nav .inline-form{display:block}.top-header.dark .header-nav{background:#1e293b}.admin-layout{flex-direction:column}.sidebar{z-index:150;width:100%;max-height:calc(100vh - 56px);display:none;position:fixed;top:56px;left:0;right:0;overflow-y:auto;box-shadow:0 4px 16px #0000004d}.sidebar.open{display:block}.admin-content{padding:16px}}.top-header.dark{background:#1e293b}.container{scrollbar-gutter:stable;flex-direction:column;flex:1;width:min(100%,max(60vw,100vh));margin:0 auto;padding:16px 24px;display:flex;overflow-y:auto}.container::-webkit-scrollbar{width:6px}.container::-webkit-scrollbar-track{background:0 0}.container::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.container::-webkit-scrollbar-thumb:hover{background:#00000040}.card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:16px;padding:24px;box-shadow:0 1px 3px #00000014}.card-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.card-header h2{font-size:18px;font-weight:600}.card-page{flex-direction:column;flex:1;margin-bottom:0;padding:0;display:flex;overflow:hidden}.card-page .card-header{flex-shrink:0;margin-bottom:0;padding:20px 24px 12px}.card-page .card-body{scrollbar-gutter:stable;flex:1;padding:16px 24px 24px;overflow-y:auto}.card-page .card-body::-webkit-scrollbar{width:6px}.card-page .card-body::-webkit-scrollbar-track{background:0 0}.card-page .card-body::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.card-page .card-body::-webkit-scrollbar-thumb:hover{background:#00000040}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}thead th{text-align:left;text-transform:uppercase;color:#6b7280;background:#f8f9fa;border-bottom:2px solid #e5e7eb;padding:10px 12px;font-size:12px;font-weight:600}tbody td{vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:10px 12px}tbody tr:hover{background:#f8f9fa}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.btn-primary{color:#fff;background:#1a73e8}.btn-primary:hover{color:#fff;background:#1557b0;text-decoration:none}.btn-secondary{color:#333;background:#f0f2f5;border:1px solid #d1d5db}.btn-secondary:hover{background:#e5e7eb;text-decoration:none}.btn-danger{color:#fff;background:#dc2626}.btn-danger:hover{color:#fff;background:#b91c1c;text-decoration:none}.btn-warning{color:#fff;background:#d97706}.btn-warning:hover{color:#fff;background:#b45309;text-decoration:none}.btn-sm{padding:4px 10px;font-size:12px}.btn-link{color:#ffffffe6;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.btn-link:hover{color:#fff}.btn-passkey{color:#111;background:#fff;border:1px solid #d1d5db;justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-passkey:hover{color:#111;background:#f9fafb;text-decoration:none}.btn-passkey:disabled{opacity:.5;cursor:not-allowed}.btn-passkey svg{flex-shrink:0;width:18px;height:18px}.login-or-divider{color:#6b7280;align-items:center;gap:12px;margin:16px 0;font-size:13px;display:flex}.login-or-divider:before,.login-or-divider:after{content:"";background:#e5e7eb;flex:1;height:1px}.form-group{margin-bottom:16px}.form-hint{color:#6b7280;margin-top:4px;font-size:12px;display:block}.form-group label{color:#374151;margin-bottom:4px;font-size:13px;font-weight:500;display:block}.form-control{border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-size:14px;transition:border-color .15s}.form-control:focus{border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e81a}select.form-control{appearance:auto}textarea.form-control{resize:vertical;min-height:80px}.inline-form{display:inline}.toast-container{z-index:1200;pointer-events:none;justify-content:center;display:flex;position:fixed;top:64px;left:0;right:0}.toast{pointer-events:auto;border-radius:8px;max-width:600px;padding:12px 24px;font-size:14px;font-weight:500;animation:.3s toast-in;box-shadow:0 4px 12px #00000026}.toast-success{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0}.toast-error{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.toast-info{color:#1e40af;background:#dbeafe;border:1px solid #93c5fd}.toast-hide{animation:.3s forwards toast-out}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.content-overlay{z-index:900;background:#0000002e;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.content-overlay.active{display:flex}.vs-scrim-confirm{z-index:1400}.vs-confirm-msg{color:#3c4043;margin:0;font-size:13.5px;line-height:1.6}.vs-su-scrim{z-index:1500}.vs-su-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:360px;padding:28px 26px;animation:.16s vs-modal-in;box-shadow:0 12px 32px #0000002e}.vs-su-brand{justify-content:center;align-items:center;gap:8px;margin-bottom:16px;display:flex}.vs-su-badge{background:linear-gradient(135deg,#1a73e8,#1557b0);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 2px 8px #1a73e859}.vs-su-wordmark{color:#1f2937;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;max-width:230px;font-size:14px;font-weight:500;overflow:hidden}.vs-su-chip{border:1px solid #e5e7eb;border-radius:99px;align-items:center;gap:8px;max-width:100%;margin-bottom:18px;padding:4px 14px 4px 5px;display:inline-flex}.vs-su-av{object-fit:cover;color:#1a73e8;background:#e8f0fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:10px;font-weight:600;display:flex}.vs-su-name{color:#374151;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.vs-su-state{background:#fef3e2;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 14px;display:flex}.vs-su-title{color:#1f2937;margin:0 0 6px;font-size:18px;font-weight:500}.vs-su-msg{color:#6b7280;max-width:290px;margin:0 auto 18px;font-size:13.5px;line-height:1.55}.vs-su-btn{width:100%;padding:10px 16px;font-size:14px}.vs-su-btn+.vs-su-btn{margin-top:9px}.vs-su-inline{text-align:center;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;min-height:280px;padding:min(15vh,150px) 24px 40px;display:flex}.vs-su-inline-ico{color:#1a73e8;background:#e8f0fe;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:14px;display:flex}.vs-su-inline h3{color:#1f2937;margin:0 0 6px;font-size:17px;font-weight:500}.vs-su-inline p{color:#6b7280;max-width:300px;margin:0 0 18px;font-size:13.5px}.vs-card-msg{color:#9ca3af;flex:1;justify-content:center;align-items:center;min-height:280px;padding:40px 16px;font-size:13px;display:flex}.wk-modal{background:#fff;border-radius:12px;width:90%;max-width:460px;box-shadow:0 8px 32px #0000002e}.wk-modal-header{padding:20px 24px 0}.wk-modal-header h3{margin:0;font-size:16px;font-weight:600}.wk-modal-body{padding:16px 24px}.wk-field{margin-bottom:12px}.wk-field label{color:#6b7280;margin-bottom:4px;font-size:12px;font-weight:500;display:block}.wk-field-row{align-items:center;gap:8px;display:flex}.wk-field-row input{color:#333;background:#f8f9fa;border:1px solid #d1d5db;border-radius:6px;outline:none;flex:1;padding:8px 10px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13px}.wk-warning{color:#d97706;margin-top:8px;font-size:12px}.wk-modal-footer{justify-content:flex-end;padding:12px 24px 20px;display:flex}@media (width<=768px){body:has(.admin-layout) .toast-container{left:0}}.status{border-radius:12px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.status-finished{color:#065f46;background:#d1fae5}.status-queued,.status-paused{color:#92400e;background:#fef3c7}.status-processing,.status-worker_downloading,.status-worker_uploading,.status-leased{color:#1e40af;background:#dbeafe}.status-error,.status-deactivated{color:#991b1b;background:#fee2e2}.course-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.course-card{color:inherit;background:#fff;border:1px solid #e5e7eb;border-top:3px solid #1a73e8;border-radius:8px;padding:20px;text-decoration:none;transition:box-shadow .2s,transform .15s;display:block}.course-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 6px 18px #1a73e81f}.course-card h3{color:#1e293b;margin-bottom:8px;font-size:15px;font-weight:600}.course-card .course-meta{color:#6b7280;font-size:12px}.video-item{border-bottom:1px solid #f0f2f5;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;transition:background .12s;display:flex}.video-item:last-child{border-bottom:none}.video-item:hover{background:#f5f8ff}.video-item.disabled{opacity:.45;pointer-events:none}.video-play-icon{color:#1a73e8;background:#e8f0fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding-left:2px;font-size:13px;display:flex}.video-poster-thumb{aspect-ratio:16/9;background:#1a1a1a;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:100px;display:flex;overflow:hidden}.video-poster-thumb img{object-fit:contain;max-width:100%;max-height:100%;display:block}@media (width<=768px){.video-item .video-poster-thumb~.video-actions .status-finished{display:none}}@keyframes skeleton-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}.skeleton{background:linear-gradient(90deg,#e5e7eb 0%,#f3f4f6 50%,#e5e7eb 100%) 0 0/200% 100%;border-radius:4px;animation:1.4s linear infinite skeleton-shimmer}.skeleton-page-title{width:220px;max-width:60%;height:22px}.skeleton-page-subtitle{width:90px;height:13px;margin-top:6px}.skeleton-row{pointer-events:none}.skeleton-video-title{width:50%;height:14px;margin-bottom:8px}.skeleton-meta-badge{border-radius:4px;width:50px;height:16px}.skeleton-meta-date{width:72px;height:11px}.skeleton-meta-duration{width:42px;height:11px}.skeleton-status-pill{border-radius:12px;width:72px;height:22px}@media (width<=768px){.skeleton-status-pill{display:none}}.video-poster-thumb.loading{background:linear-gradient(90deg,#e5e7eb 0%,#f3f4f6 50%,#e5e7eb 100%) 0 0/200% 100%;animation:1.4s linear infinite skeleton-shimmer}.video-poster-thumb img{transition:opacity .2s ease-out}.video-info{flex:1;min-width:0}.video-info h4{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:14px;font-weight:500;overflow:hidden}.video-info .video-meta{color:#6b7280;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.week-badge{color:#1d4ed8;background:#eff6ff;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.video-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.admin-layout{flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{background:#1e293b;flex-shrink:0;width:240px;padding:16px 0;overflow-y:auto}.sidebar-nav{flex-direction:column;display:flex}.sidebar-link{color:#94a3b8;align-items:center;padding:12px 20px;font-size:16px;text-decoration:none;transition:all .15s;display:flex}.sidebar-link:hover{color:#e2e8f0;background:#334155;text-decoration:none}.sidebar-link.active{color:#fff;background:#1a73e8}.sidebar-icon{align-items:center;margin-right:10px;display:inline-flex}.admin-content{scrollbar-gutter:stable;background:#f0f2f5;flex:1;padding:24px 32px;overflow-y:auto}.admin-content::-webkit-scrollbar{width:6px}.admin-content::-webkit-scrollbar-track{background:0 0}.admin-content::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.admin-content::-webkit-scrollbar-thumb:hover{background:#00000040}.login-page{flex:1;justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:400px;padding:32px}.register-step-2,.step-2-active .register-step-1{display:none}.step-2-active .register-step-2{display:block}.data-loading{opacity:.5;pointer-events:none;transition:opacity .15s}.input-error{border-color:#dc3545!important}.input-error:focus{box-shadow:0 0 0 3px #dc35451a!important}.field-error{color:#dc3545;margin-top:4px;font-size:12px;display:block}.form-control:disabled{color:#6c757d;cursor:not-allowed;background:#e9ecef}.btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.vs-wp-back{color:#5f6368;align-items:center;gap:6px;margin-bottom:14px;font-size:13.5px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex}.vs-wp-back:hover{color:#1a73e8;text-decoration:none}.vs-wp-back svg{flex-shrink:0;width:16px;height:16px}.vs-wp-stage{background:#000;border-radius:12px;overflow:hidden}.video-player{aspect-ratio:16/9;background:#000;width:100%;max-height:70vh;overflow:hidden}.video-player video{width:100%;height:100%}.player-error-overlay{color:#fff;text-align:center;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:24px;display:flex}.player-error-overlay h2{margin-bottom:6px;font-size:1.2rem}.player-error-overlay p{color:#999;font-size:.9rem}.vs-wp-info{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-top:14px;padding:18px 20px}.vs-wp-title{color:#1f2937;margin:0 0 6px;font-size:20px;font-weight:500}.vs-wp-meta{color:#6b7280;flex-wrap:wrap;align-items:center;margin:0;font-size:13px;display:flex}.vs-wp-desc{color:#374151;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 0;font-size:14px;line-height:1.65}.vs-wp-skel-stage{aspect-ratio:16/9;background:linear-gradient(90deg,#dbe1e8 25%,#eaeef2 37%,#dbe1e8 63%) 0 0/400% 100%;width:100%;max-height:70vh;animation:1.4s infinite vs-shimmer}@media (prefers-reduced-motion:reduce){.vs-wp .vs-skln,.vs-wp-skel-stage{animation:none}}.shaka-theater-button{color:#fff;cursor:pointer;opacity:.9;background:0 0;border:none;justify-content:center;align-items:center;min-width:40px;padding:0 6px;transition:opacity .1s;display:flex}.shaka-theater-button:hover{opacity:1}.shaka-theater-button svg{width:22px;height:22px;display:block}body.theater-mode{overflow:hidden}.theater-mode .vs-wp{z-index:1000;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.theater-mode .vs-wp-bar{background:#111;border-bottom:1px solid #2a2a2a;flex-shrink:0;align-items:center;padding:0 20px;display:flex}.theater-mode .vs-wp-back{color:#e8eaed;margin:0;padding:11px 0}.theater-mode .vs-wp-back:hover{color:#fff}.theater-mode .vs-wp-stage{background:#000;border-radius:0;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.theater-mode .video-player{border-radius:0;width:100%;height:100%;max-height:none;aspect-ratio:auto!important}.theater-mode .video-player video{object-fit:contain}.theater-mode .vs-wp-info{display:none}.pagination-bar{color:#555;background:#fff;border-top:1px solid #e5e7eb;border-radius:0 0 8px 8px;flex-shrink:0;align-items:center;gap:16px;padding:10px 24px;font-size:13px;display:flex}.pagination-total{white-space:nowrap}.pagination-limit{color:#333;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:4px 8px;font-size:13px}.pagination-pages{align-items:center;gap:4px;margin-left:auto;display:flex}.pagination-btn{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #d1d5db;border-radius:4px;justify-content:center;align-items:center;min-width:32px;height:32px;padding:0 8px;font-size:13px;line-height:1;text-decoration:none;display:inline-flex}a.pagination-btn:hover{background:#f0f2f5;text-decoration:none}.pagination-btn.active{color:#fff;background:#1a73e8;border-color:#1a73e8}.pagination-btn.disabled{color:#ccc;cursor:default;pointer-events:none;border-color:#e5e7eb}.pagination-ellipsis{color:#999;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;min-width:32px;height:32px;font-size:13px;display:inline-flex}.pagination-goto-wrap{white-space:nowrap;align-items:center;gap:6px;margin-left:auto;display:flex}.pagination-goto{text-align:center;color:#333;border:1px solid #d1d5db;border-radius:4px;width:48px;padding:4px 6px;font-size:13px}.pagination-goto:focus{border-color:#1a73e8;outline:none;box-shadow:0 0 0 2px #1a73e826}@media (width<=768px){.pagination-goto-wrap,.pagination-num,.pagination-ellipsis{display:none}.pagination-pages{margin-left:auto}}.tabs{border-bottom:2px solid #e5e7eb;margin-bottom:20px;display:flex}.tab{color:#6b7280;cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 20px;font-size:14px;text-decoration:none}.tab:hover{color:#333;text-decoration:none}.tab.active{color:#1a73e8;border-bottom-color:#1a73e8;font-weight:500}.upload-progress{margin-top:16px}.progress-bar{background:#e5e7eb;border-radius:4px;width:100%;height:8px;overflow:hidden}.progress-bar-fill{background:#1a73e8;border-radius:4px;height:100%;transition:width .3s}.progress-text{color:#6b7280;margin-top:4px;font-size:12px}.perm-toggle{border:1px solid #d1d5db;border-radius:6px;display:inline-flex;overflow:hidden}.perm-toggle label{cursor:pointer;border-right:1px solid #d1d5db;padding:4px 10px;font-size:12px;transition:background .1s}.perm-toggle label:last-child{border-right:none}.perm-toggle input[type=radio]{display:none}.perm-toggle input[type=radio]:checked+span{font-weight:600}.perm-toggle label.perm-inherit input:checked~span{background:#f0f2f5}.perm-toggle label.perm-grant input:checked~span{color:#065f46;background:#d1fae5}.perm-toggle label.perm-deny input:checked~span{color:#991b1b;background:#fee2e2}.site-footer{text-align:center;color:#9ca3af;background:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;padding:12px 24px;font-size:12px}.footer-inner{width:min(100%,max(60vw,100vh));margin:0 auto}.text-muted{color:#6b7280}.text-sm{font-size:12px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:16px}.mt-4{margin-top:24px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:16px}.gap-2{gap:8px}.flex{display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.hidden{display:none}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.active{display:flex}.modal{background:#fff;border-radius:8px;width:100%;max-width:480px;margin:16px;box-shadow:0 20px 60px #0000004d}.modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{margin:0;font-size:16px;font-weight:600}.modal-close{cursor:pointer;color:#6b7280;background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}.modal-close:hover{color:#111}.modal-body{padding:20px}.modal-footer{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.spinner{border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;width:32px;height:32px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.mfa-challenge-overlay{z-index:1500;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mfa-challenge-modal{background:#fff;border-radius:12px;width:90%;max-width:400px;padding:32px;box-shadow:0 8px 32px #0000002e}.mfa-method-option{cursor:pointer;text-align:left;background:#fff;border:1px solid #d1d5db;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:14px 16px;transition:background .15s,border-color .15s;display:flex}.mfa-method-option:hover{background:#f8f9fa;border-color:#1a73e8}.otp-inputs{justify-content:center;gap:8px;display:flex}.otp-input{text-align:center;caret-color:#1a73e8;border:1px solid #d1d5db;border-radius:8px;outline:none;width:48px;height:56px;font-size:24px;font-weight:600;transition:border-color .15s,box-shadow .15s}.otp-input:focus{border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e81a}.otp-input:disabled{color:#6c757d;cursor:not-allowed;background:#e9ecef}.otp-input-error{border-color:#dc3545}.otp-input-error:focus{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.upload-modal{background:#fff;border-radius:8px;width:100%;max-width:560px;max-height:90vh;margin:16px;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.upload-dropzone{text-align:center;cursor:pointer;color:#6b7280;border:2px dashed #d1d5db;border-radius:8px;margin-bottom:16px;padding:40px 20px;transition:border-color .15s,background-color .15s}.upload-dropzone:hover,.upload-dropzone.drag-active{background-color:#eff6ff;border-color:#3b82f6}.upload-dropzone.has-file{color:#065f46;background-color:#ecfdf5;border-color:#10b981}.upload-dropzone p{margin:0;font-size:14px}.course-select-wrap{position:relative}.course-select-dropdown{z-index:10;background:#fff;border:1px solid #d1d5db;border-radius:4px;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.course-select-dropdown-portal{z-index:1100}.course-select-option{cursor:pointer;padding:8px 12px;font-size:13px}.course-select-option:hover{background:#f3f4f6}.full-window-drop-overlay{z-index:10000;-webkit-backdrop-filter:blur(2px);pointer-events:auto;background:#3b82f62e;justify-content:center;align-items:center;animation:.12s ease-out full-window-drop-fade-in;display:flex;position:fixed;inset:0}.full-window-drop-overlay:before{content:"";pointer-events:none;border:3px dashed #3b82f6;border-radius:12px;position:absolute;inset:16px}.full-window-drop-overlay-message{color:#1e40af;text-align:center;pointer-events:none;background:#fff;border-radius:10px;padding:24px 36px;font-size:18px;font-weight:600;box-shadow:0 20px 50px #00000040}.full-window-drop-overlay-message-sub{color:#6b7280;margin-top:6px;font-size:13px;font-weight:400;display:block}@keyframes full-window-drop-fade-in{0%{opacity:0}to{opacity:1}}tr.clickable-row{cursor:pointer}tr.clickable-row:hover{background-color:#f9fafb}.toggle-switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:#d1d5db;border-radius:24px;transition:background-color .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background-color:#1a73e8}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.admin-edit-page{flex-direction:column;height:100%;display:flex}.course-edit-card{flex-direction:column;flex:1;min-height:0;margin-bottom:0;display:flex;overflow:hidden;padding:0!important}.course-edit-layout{flex:1;min-height:0;display:flex;overflow:hidden}.course-edit-sidebar{background:#fafbfc;border-right:1px solid #e5e7eb;flex-direction:column;flex-shrink:0;width:200px;padding:8px 0;display:flex}.course-edit-sidebar-item{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-size:14px;transition:background-color .15s;display:block}.course-edit-sidebar-item:hover{background-color:#f3f4f6}.course-edit-sidebar-item.active{color:#1a73e8;background-color:#e8f0fe;font-weight:500}.course-edit-sidebar-delete{color:#dc2626;border-top:1px solid #e5e7eb;margin-top:auto}.course-edit-sidebar-delete:hover{background-color:#fee2e2}.course-edit-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.course-edit-content-scroll{scrollbar-gutter:stable;flex:1;min-height:0;padding:24px;overflow-y:auto}.course-edit-content-scroll::-webkit-scrollbar{width:6px}.course-edit-content-scroll::-webkit-scrollbar-track{background:0 0}.course-edit-content-scroll::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.course-edit-content-scroll::-webkit-scrollbar-thumb:hover{background:#00000040}.course-edit-permissions{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.course-edit-permissions-footer{background:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;padding:12px 24px}.course-edit-mobile-tabs{display:none}@media (width<=768px){.course-edit-layout{flex-direction:column}.course-edit-sidebar{display:none}.course-edit-mobile-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#fafbfc;border-bottom:1px solid #e5e7eb;flex-shrink:0;display:flex;overflow-x:auto}.course-edit-mobile-tabs::-webkit-scrollbar{display:none}.course-edit-mobile-tab{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;padding:10px 16px;font-size:13px}.course-edit-mobile-tab.active{color:#1a73e8;border-bottom-color:#1a73e8;font-weight:500}.course-edit-mobile-delete{color:#dc2626;margin-left:auto}.course-edit-content-scroll{padding:16px}.course-edit-permissions-footer{padding:12px 16px}}.account-info-flex{align-items:flex-start;gap:28px;display:flex}.account-info-flex .profile-info-table{flex:1;min-width:0}.account-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:96px;height:96px;margin-top:6px}@media (width<=768px){.account-info-flex{flex-direction:column-reverse}.account-avatar{margin:0 0 8px}}.profile-info-table{border-collapse:collapse;width:100%}.profile-info-table tr+tr td{border-top:1px solid #f1f3f5}.profile-info-table td{vertical-align:middle;padding:12px 0}.profile-info-table .profile-info-key{color:#374151;width:150px;font-weight:500}.profile-mfa-panel{flex-direction:column;gap:24px;display:flex}.profile-mfa-section{border-bottom:1px solid #e5e7eb;padding-bottom:24px}.profile-mfa-section:last-child{border-bottom:none;padding-bottom:0}.profile-mfa-section-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.profile-mfa-section-title{color:#111827;margin:0 0 2px;font-size:14px;font-weight:600}.playback-disabled-banner{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;justify-content:center;align-items:center;gap:10px;margin-bottom:16px;padding:12px 20px;font-size:14px;line-height:1.4;display:flex}.playback-disabled-banner-message{text-align:center;min-width:0}.playback-disabled-banner-message>span{text-align:left;display:inline-block}.playback-disabled-banner-icon{color:#dc2626;flex-shrink:0;width:20px;height:20px}@media (width<=768px){.playback-disabled-banner{justify-content:flex-start;padding:14px 16px}.playback-disabled-banner-message{flex:1}.playback-disabled-banner-icon{width:28px;height:28px}}.sso-pill{border-radius:12px;padding:3px 11px;font-size:12px;font-weight:500}.sso-pill.gray{color:#5f6368;background:#f0f2f5}.sso-pill.green{color:#065f46;background:#d1fae5}.sso-pill.amber{color:#92400e;background:#fef3c7}.sso-pill.red{color:#991b1b;background:#fee2e2}.sso-warn{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;margin-bottom:16px;padding:10px 12px;font-size:13px}.sso-grid{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.sso-full{grid-column:1/-1}.sso-hint{color:#9ca3af;font-weight:400}.sso-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.sso-bad{border-color:#dc2626!important}.sso-certinfo{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.sso-certinfo .r{border-top:1px solid #eef0f2;justify-content:space-between;padding:9px 14px;font-size:13px;display:flex}.sso-certinfo .r:first-child{border-top:0}.sso-certinfo .r .k{color:#6b7280}.sso-certinfo .r .v{color:#1f2937;word-break:break-all;font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.sso-toggle{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:12px;margin:16px 0;padding:14px 16px;display:flex}.sso-toggle .lbl{flex:1}.sso-toggle .lbl .sub{color:#6b7280;margin:0;font-size:12.5px}.sso-switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.sso-switch input{opacity:0;width:0;height:0}.sso-slider{cursor:pointer;background:#d1d5db;border-radius:24px;transition:all .2s;position:absolute;inset:0}.sso-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.sso-switch input:checked+.sso-slider{background:#16a34a}.sso-switch input:checked+.sso-slider:before{transform:translate(20px)}.sso-switch input:disabled+.sso-slider{opacity:.45;cursor:not-allowed}.sso-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.sso-subhead{color:#374151;margin:22px 0 10px;font-size:13px;font-weight:600}.sso-ro{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:6px;align-items:stretch;max-width:520px;display:flex;overflow:hidden}.sso-ro code{white-space:nowrap;text-overflow:ellipsis;color:#1f2937;flex:1;align-self:center;min-width:0;padding:8px 12px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px;overflow:hidden}.sso-ro .btn{border:0;border-left:1px solid #e5e7eb;border-radius:0;flex-shrink:0}@media (width<=640px){.sso-grid{grid-template-columns:1fr}}.vs-topbar{background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 20px;display:flex}.vs-brand{color:#1f2937;align-items:center;gap:9px;font-size:16px;font-weight:500;display:flex}.vs-brand:hover{text-decoration:none}.vs-brand-mark{color:#fff;background:#1a73e8;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:27px;height:27px;display:flex}.vs-brand-name{text-overflow:ellipsis;white-space:nowrap;max-width:46vw;overflow:hidden}.vs-topbar-right{align-items:center;gap:10px;display:flex}.vs-body{flex:1;min-height:0;display:flex;overflow:hidden}.vs-side{background:#f8f9fa;border-right:1px solid #e5e7eb;flex-shrink:0;width:240px;overflow:hidden}.vs-side-collapsed{display:none}.vs-side-track{width:200%;height:100%;transition:transform .22s;display:flex}.vs-side-track.admin{transform:translate(-50%)}.vs-side-pane{box-sizing:border-box;flex-direction:column;width:50%;height:100%;min-height:0;padding:14px 12px 18px;display:flex}.vs-side-label{letter-spacing:.04em;text-transform:uppercase;color:#9ca3af;flex-shrink:0;padding:2px 12px 8px;font-size:11px;font-weight:500}.vs-nav-scroll{flex-direction:column;flex:1;gap:2px;margin:0 -4px;padding:0 4px;display:flex;overflow-y:auto}.vs-nav{color:#5f6368;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:11px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px;line-height:1.3;display:flex}.vs-nav:hover{color:#1f2937;background:#eef0f3;text-decoration:none}.vs-nav.active{color:#1a73e8;background:#e8f0fe;font-weight:500}.vs-nav-ico{flex-shrink:0;justify-content:center;align-items:center;width:19px;height:19px;display:inline-flex}.vs-nav-ico svg{width:19px;height:19px}.vs-nav-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vs-nav-chev{color:#9ca3af;flex-shrink:0;margin-left:auto;display:inline-flex}.vs-admin-entry{border-top:1px solid #e5e7eb;flex-shrink:0;margin-top:8px;padding-top:12px}.vs-admin-entry .vs-nav{padding-top:10px;padding-bottom:10px}.vs-nav-back{color:#1f2937;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;flex-shrink:0;margin-bottom:6px;padding-bottom:11px;font-weight:500}.vs-side-empty{color:#9ca3af;margin:0;padding:8px 12px;font-size:13px}.vs-nav-skel{background:linear-gradient(90deg,#eceef1 25%,#f3f4f6 37%,#eceef1 63%) 0 0/400% 100%;border-radius:8px;flex-shrink:0;height:37px;margin:0 0 2px;animation:1.4s infinite vs-shimmer}@keyframes vs-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.vs-content{scrollbar-gutter:stable;background:#f0f2f5;flex:1;min-width:0;padding:24px 32px;overflow:hidden auto}@keyframes vs-slide-in-right{0%{transform:translate(calc(100% + 32px))}}@keyframes vs-slide-in-left{0%{transform:translate(calc(-100% - 32px))}}.vs-slide-in-right,.vs-slide-in-left{animation-duration:.2s;animation-timing-function:cubic-bezier(.32,.72,0,1);animation-fill-mode:backwards}.vs-slide-in-right{animation-name:vs-slide-in-right}.vs-slide-in-left{animation-name:vs-slide-in-left}@media (prefers-reduced-motion:reduce){.vs-slide-in-right,.vs-slide-in-left{animation:none}}.vs-content-inner{max-width:920px;margin:0 auto}.vs-content::-webkit-scrollbar{width:6px}.vs-content::-webkit-scrollbar-thumb{background:#c3c8cf;border-radius:3px}@media (width<=768px){.vs-body{flex-direction:column;overflow:visible}.vs-side{border-bottom:1px solid #e5e7eb;border-right:0;width:100%;height:auto;position:relative;overflow:visible}.vs-side-collapsed{cursor:pointer;color:#1f2937;text-align:left;background:0 0;border:0;align-items:center;gap:11px;width:100%;padding:12px 16px;font-family:inherit;font-size:14px;display:flex}.vs-side-collapsed .vs-nav-ico{color:#5f6368}.vs-cc-label{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.vs-cc-more{color:#9ca3af;flex-shrink:0;font-size:13px}.vs-cc-chev{color:#9ca3af;flex-shrink:0;margin-left:auto;transition:transform .18s;display:inline-flex}.vs-side.expanded .vs-cc-chev{transform:rotate(180deg)}.vs-side-track{display:none}.vs-side.expanded .vs-side-track{z-index:90;background:#f8f9fa;border-bottom:1px solid #e5e7eb;flex-direction:column;width:100%;height:auto;max-height:min(58dvh,320px);display:flex;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 10px 20px #0000001a;transform:none!important}.vs-side-pane{width:100%;height:auto;padding:8px 10px;display:none}.vs-side-track:not(.admin) .vs-side-pane:first-child,.vs-side-track.admin .vs-side-pane:last-child{display:flex}.vs-side-pane .vs-side-label{display:none}.vs-content{padding:16px}}.vs-welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:62vh;padding:40px 24px;display:flex}.vs-welcome-ico{color:#b2b8c0;margin-bottom:16px}.vs-welcome h1{color:#1f2937;margin:0 0 8px;font-size:24px;font-weight:500}.vs-welcome p{color:#6b7280;max-width:440px;margin:0;font-size:15px;line-height:1.6}.vs-cv-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.vs-cv-title{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0 0 3px;font-size:22px;font-weight:500;overflow:hidden}.vs-cv-sub{color:#6b7280;margin:0;font-size:13px}.vs-seg{background:#eceef1;border-radius:9px;flex-shrink:0;padding:3px;display:inline-flex}.vs-seg-btn{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:6px 13px;font-family:inherit;font-size:13px;display:inline-flex}.vs-seg-btn svg{width:15px;height:15px}.vs-seg-btn.on{color:#1f2937;background:#fff;border-color:#e0e2e6;font-weight:500}@media (width<=640px){.vs-seg-lbl{display:none}.vs-seg-btn{padding:7px 11px}}.vs-cv-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.vs-cv-row{color:inherit;border-top:1px solid #eef0f2;align-items:center;gap:14px;padding:13px 16px;text-decoration:none;display:flex}.vs-cv-row:first-child{border-top:0}.vs-cv-row.clk{cursor:pointer}.vs-cv-row.clk:hover{background:#f8f9fb;text-decoration:none}.vs-cv-row.proc{opacity:.6}.vs-cv-thumb{aspect-ratio:16/9;background:#0d0d0f;border-radius:7px;flex-shrink:0;width:100px;position:relative;overflow:hidden}.vs-cv-thumb.loading{background:linear-gradient(90deg,#dbe1e8 25%,#eaeef2 37%,#dbe1e8 63%) 0 0/400% 100%;animation:1.4s infinite vs-shimmer}.vs-cv-thumb img{object-fit:cover;width:100%;height:100%;transition:opacity .2s;display:block}.vs-cv-play{aspect-ratio:16/9;color:#1a73e8;background:#e8f0fe;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:100px;font-size:16px;display:flex}.vs-cv-rmn{flex:1;min-width:0}.vs-cv-rt{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;font-weight:500;overflow:hidden}.vs-cv-rs{color:#6b7280;align-items:center;margin:3px 0 0;font-size:12px;display:flex}.vs-wk{color:#1a73e8;background:#e8f0fe;border-radius:6px;flex-shrink:0;margin-right:8px;padding:1px 7px;font-size:11px;font-weight:500}.vs-cv-av{object-fit:cover;color:#1a73e8;text-transform:uppercase;background:#e8f0fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:500;display:flex}.vs-you{color:#1a73e8;letter-spacing:.02em;vertical-align:middle;background:#e8f0fe;border-radius:999px;flex-shrink:0;align-items:center;margin-left:8px;padding:1px 8px;font-size:10.5px;font-weight:500;line-height:1.55;display:inline-flex}.vs-cv-dot{color:#c3c8cf;margin:0 6px}.vs-cv-chev{color:#c3c8cf;flex-shrink:0;display:inline-flex}.vs-cv-stb{white-space:nowrap;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:500}.vs-cv-stb-p{color:#92400e;background:#fef3c7}.vs-cv-stb-f{color:#c5221f;background:#fce8e6}.vs-cv-stb-n{color:#5f6368;background:#f1f3f4}.vs-cv-fico{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.vs-cv-fico svg{width:18px;height:18px}.fico-pdf{color:#c5221f;background:#fdecea}.fico-doc{color:#1a73e8;background:#e8f0fe}.fico-zip{color:#92400e;background:#fef3c7}.fico-csv{color:#137333;background:#e6f4ea}.fico-gen{color:#5f6368;background:#f1f3f4}.vs-cv-acts{flex-shrink:0;align-items:center;gap:6px;display:flex}.vs-cv-view{cursor:pointer;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:8px;align-items:center;gap:4px;padding:5px 10px;font-family:inherit;font-size:12px;text-decoration:none;display:inline-flex}.vs-cv-view:hover{background:#f8f9fa;text-decoration:none}.vs-cv-view svg{width:15px;height:15px}.vs-cv-dl{cursor:pointer;color:#5f6368;background:#fff;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.vs-cv-dl:hover{color:#1f2937;background:#f8f9fa}.vs-cv-dl svg{width:16px;height:16px}.vs-cv-empty{text-align:center;color:#9ca3af;padding:40px 24px;font-size:14px}.vs-cv-gone{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:46vh;padding:40px 24px;display:flex}.vs-cv-gone-ico{color:#b2b8c0;margin-bottom:16px}.vs-cv-gone-ico svg{width:42px;height:42px}.vs-cv-gone h2{color:#1f2937;margin:0 0 6px;font-size:19px;font-weight:500}.vs-cv-gone p{color:#6b7280;max-width:380px;margin:0 0 20px;font-size:14px;line-height:1.55}.vs-cv-foot{min-height:42px}.vs-pager{color:#6b7280;align-items:center;gap:8px;margin-top:14px;font-size:12.5px;display:flex}.vs-pbtn{cursor:pointer;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:8px;align-items:center;gap:3px;padding:5px 10px;font-family:inherit;font-size:12.5px;display:inline-flex}.vs-pbtn:disabled{opacity:.45;cursor:default}.vs-pbtn svg{width:15px;height:15px}.vs-pnum{text-align:center;cursor:pointer;color:#1f2937;background:0 0;border:1px solid #0000;border-radius:8px;min-width:30px;padding:5px 8px;font-family:inherit;font-size:12.5px}.vs-pnum.on{color:#fff;background:#1a73e8;font-weight:500}.vs-pdots{color:#9ca3af;padding:0 2px}.vs-pager-count{color:#6b7280;flex-shrink:0}.vs-pager-nav{align-items:center;gap:8px;margin-left:auto;display:flex}.vs-sort{display:inline-flex;position:relative}.vs-sort-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-size:12.5px;transition:background .12s,border-color .12s;display:inline-flex}.vs-sort-btn:hover{background:#f8f9fa;border-color:#9ca3af}.vs-sort-btn.open{background:#f8f9fb;border-color:#1a73e8}.vs-sort-btn>svg{color:#6b7280;width:15px;height:15px}.vs-sort-cur{color:#1f2937;font-weight:500}.vs-sort-dir{color:#6b7280;display:inline-flex}.vs-sort-dir svg{width:13px;height:13px}.vs-sort-menu{z-index:30;transform-origin:0 100%;background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-width:172px;padding:6px;animation:.16s ease-in-out vs-pop-up;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 10px 30px #00000024}@keyframes vs-pop-up{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.vs-sort-sec{letter-spacing:.05em;text-transform:uppercase;color:#9ca3af;padding:8px 10px 4px;font-size:10.5px;font-weight:600}.vs-sort-opt{color:#1f2937;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:7px 10px;font-family:inherit;font-size:13px;display:flex}.vs-sort-opt:hover{background:#f1f3f4}.vs-sort-opt.on{color:#1a73e8;font-weight:500}.vs-sort-opt svg{color:#1a73e8;flex-shrink:0;width:15px;height:15px}.vs-sort-div{background:#eef0f2;height:1px;margin:5px 2px}@media (width<=640px){.vs-pnum,.vs-pdots,.vs-pbtn-lbl{display:none}.vs-pbtn{padding:7px 9px}.vs-pbtn svg{width:20px;height:20px}.vs-pager-nav{gap:6px}.vs-sort-cur,.vs-sort-dir{display:none}.vs-sort-btn{padding:8px 9px}.vs-sort-btn>svg{width:19px;height:19px}}.vs-cv-skel{background:linear-gradient(90deg,#eceef1 25%,#f3f4f6 37%,#eceef1 63%) 0 0/400% 100%;border-radius:5px;height:13px;animation:1.4s infinite vs-shimmer}.vs-skln{color:#0000;-webkit-user-select:none;user-select:none;background:linear-gradient(90deg,#eceef1 25%,#f3f4f6 37%,#eceef1 63%) 0 0/400% 100%;border-radius:5px;animation:1.4s infinite vs-shimmer;display:inline-block}.vs-cv-sub-skel{vertical-align:middle;width:56px;display:inline-block}.vs-btn{color:#1f2937;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500;line-height:1.35;transition:background .12s,border-color .12s;display:inline-flex}.vs-btn:hover:not(:disabled){background:#f8f9fa;border-color:#9ca3af}.vs-btn:disabled{opacity:.5;cursor:default}.vs-btn svg{flex-shrink:0;width:15px;height:15px}.vs-btn-primary{color:#fff;background:#1a73e8;border-color:#1a73e8}.vs-btn-primary:hover:not(:disabled){background:#1557b0;border-color:#1557b0}.vs-btn-danger{color:#c5221f;border-color:#f2b8b5}.vs-btn-danger:hover:not(:disabled){background:#fce8e6;border-color:#c5221f}.vs-btn-sm{padding:5px 10px;font-size:12px}.vs-ico-btn{color:#5f6368;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.vs-ico-btn:hover:not(:disabled){color:#1f2937;background:#f8f9fa;border-color:#9ca3af}.vs-ico-btn:disabled{opacity:.45;cursor:default}.vs-ico-btn svg{width:16px;height:16px}.vs-ico-btn.dg{color:#c5221f;border-color:#f2b8b5}.vs-ico-btn.dg:hover:not(:disabled){color:#c5221f;background:#fce8e6;border-color:#c5221f}.vs-field{margin-bottom:14px}.vs-field:last-child{margin-bottom:0}.vs-field-row{gap:12px;display:flex}.vs-field-row>.vs-field{flex:1;min-width:0}.vs-label{color:#374151;margin-bottom:5px;font-size:12px;font-weight:500;display:block}.vs-input,.vs-select,.vs-textarea{box-sizing:border-box;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:8px 11px;font-family:inherit;font-size:13.5px;transition:border-color .12s,box-shadow .12s}.vs-input:focus,.vs-select:focus,.vs-textarea:focus{border-color:#1a73e8;outline:none;box-shadow:0 0 0 3px #1a73e81f}.vs-input::placeholder,.vs-textarea::placeholder{color:#9ca3af}.vs-input:disabled,.vs-select:disabled,.vs-textarea:disabled{color:#6b7280;cursor:default;background:#f8f9fa}.vs-search{margin-bottom:14px;position:relative}.vs-search .vs-input{padding-left:34px;padding-right:34px}.vs-search-ico{color:#9ca3af;pointer-events:none;display:flex;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.vs-search-ico svg{width:16px;height:16px}.vs-search-clear{color:#9ca3af;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.vs-search-clear:hover{color:#1f2937;background:#f1f3f4}.vs-search-clear svg{width:15px;height:15px}.vs-input.err,.vs-select.err{border-color:#c5221f}.vs-input.err:focus{box-shadow:0 0 0 3px #c5221f1f}.vs-textarea{resize:vertical;min-height:66px;line-height:1.5}.vs-select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236b7280' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding-right:30px}.vs-hint{color:#6b7280;margin:5px 0 0;font-size:11.5px;line-height:1.45}.vs-hint.err{color:#c5221f}.vs-auto{color:#1a73e8;background:#e8f0fe;border-radius:5px;margin-left:6px;padding:1px 6px;font-size:10.5px;font-weight:500}.vs-scrim{z-index:1200;background:#20212473;justify-content:center;align-items:center;padding:24px;animation:.14s vs-scrim-in;display:flex;position:fixed;inset:0}@keyframes vs-scrim-in{0%{opacity:0}to{opacity:1}}.vs-modal{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:520px;max-height:calc(100vh - 48px);animation:.16s vs-modal-in;display:flex;overflow:hidden;box-shadow:0 12px 32px #0000002e}@keyframes vs-modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.vs-modal-wide{max-width:620px}.vs-modal-head{border-bottom:1px solid #eef0f2;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;display:flex}.vs-modal-title{color:#1f2937;margin:0;font-size:15px;font-weight:500}.vs-modal-x{color:#6b7280;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.vs-modal-x:hover:not(:disabled){color:#1f2937;background:#f1f3f4}.vs-modal-x:disabled{opacity:.4;cursor:default}.vs-modal-x svg{width:18px;height:18px}.vs-modal-body{flex:1;min-height:0;padding:18px;overflow-y:auto}.vs-modal-body::-webkit-scrollbar{width:6px}.vs-modal-body::-webkit-scrollbar-thumb{background:#c3c8cf;border-radius:3px}.vs-modal-foot{background:#f8f9fa;border-top:1px solid #eef0f2;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:13px 18px;display:flex}.vs-modal-note{color:#6b7280;margin-right:auto;font-size:12.5px}.vs-dropzone{text-align:center;cursor:pointer;background:#fff;border:2px dashed #d1d5db;border-radius:12px;padding:34px 20px;transition:border-color .14s,background .14s}.vs-dropzone:hover{background:#f7faff;border-color:#1a73e8}.vs-dropzone.drag{background:#e8f0fe;border-color:#1a73e8}.vs-dropzone-ico{color:#9ca3af;justify-content:center;margin-bottom:10px;display:flex}.vs-dropzone-ico svg{width:30px;height:30px}.vs-dropzone.drag .vs-dropzone-ico{color:#1a73e8}.vs-dropzone-t{color:#1f2937;margin:0 0 4px;font-size:14px;font-weight:500}.vs-dropzone-h{color:#9ca3af;margin:0;font-size:12px}.vs-filechip{background:#e6f4ea;border:1px solid #ceead6;border-radius:10px;align-items:center;gap:11px;padding:11px 12px;display:flex}.vs-filechip-ico{color:#137333;flex-shrink:0;display:flex}.vs-filechip-ico svg{width:19px;height:19px}.vs-filechip-mn{flex:1;min-width:0}.vs-filechip-t{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;font-weight:500;overflow:hidden}.vs-filechip-s{color:#6b7280;margin:2px 0 0;font-size:11.5px}.vs-batch{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:14px;padding:12px}.vs-filelist{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.vs-fl-row{border-top:1px solid #eef0f2;align-items:center;gap:11px;padding:9px 11px;display:flex}.vs-fl-row:first-child{border-top:0}.vs-fl-row.bad{background:#fef7f6}.vs-fl-mn{flex:1;min-width:0}.vs-fl-t{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;font-weight:500;overflow:hidden}.vs-fl-s{color:#6b7280;margin:3px 0 0;font-size:11.5px}.vs-fl-s.err{color:#c5221f}.vs-fl-mod{flex-shrink:0;width:78px}.vs-fl-mod .vs-input{text-align:center;padding:5px 8px;font-size:12.5px}.vs-fl-pct{text-align:right;color:#6b7280;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:34px;font-size:11.5px}.vs-fl-ok{color:#137333;flex-shrink:0;display:inline-flex}.vs-fl-ok svg{width:17px;height:17px}.vs-fl-x{color:#9ca3af;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.vs-fl-x:hover:not(:disabled){color:#1f2937;background:#f1f3f4}.vs-fl-x:disabled{opacity:.35;cursor:default}.vs-fl-x svg{width:15px;height:15px}.vs-progress{background:#eceef1;border-radius:3px;height:5px;margin-top:6px;overflow:hidden}.vs-progress-fill{background:#1a73e8;border-radius:3px;height:100%;transition:width .18s}.vs-progress-fill.done{background:#137333}.vs-progress-fill.err{background:#c5221f}.vs-progress-lg{height:6px}.vs-modal-split{max-width:720px;height:min(576px,100vh - 48px)}.vs-modal-split .vs-modal-body{padding:0;display:flex;overflow:hidden}.vs-split-rail{background:#f8f9fa;border-right:1px solid #eef0f2;flex-direction:column;flex-shrink:0;gap:2px;width:176px;padding:12px 10px;display:flex}.vs-rail-item{color:#5f6368;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.3;display:flex}.vs-rail-item:hover:not(:disabled){color:#1f2937;background:#eef0f3}.vs-rail-item.on{color:#1a73e8;background:#e8f0fe;font-weight:500}.vs-rail-item svg{flex-shrink:0;width:17px;height:17px}.vs-rail-item.dg{color:#c5221f}.vs-rail-item.dg:hover:not(:disabled){color:#c5221f;background:#fce8e6}.vs-rail-item:disabled{opacity:.45;cursor:default}.vs-rail-spacer{flex:1;min-height:12px}.vs-rail-sep{background:#e5e7eb;height:1px;margin:6px 2px}.vs-split-pane{flex:1;min-width:0;padding:18px 20px;overflow-y:auto}.vs-split-pane::-webkit-scrollbar{width:6px}.vs-split-pane::-webkit-scrollbar-thumb{background:#c3c8cf;border-radius:3px}.vs-pane-h{color:#1f2937;margin:0 0 3px;font-size:14px;font-weight:500}.vs-pane-sub{color:#6b7280;margin:0 0 16px;font-size:12px;line-height:1.5}.vs-pane-sec{border-top:1px solid #eef0f2;margin-top:22px;padding-top:18px}.vs-pane-sec:first-child{border-top:0;margin-top:0;padding-top:0}@media (width<=640px){.vs-modal-split{height:calc(100vh - 32px)}.vs-modal-split .vs-modal-body{flex-direction:column}.vs-split-rail{border-bottom:1px solid #eef0f2;border-right:0;flex-direction:row;gap:4px;width:auto;padding:8px;overflow-x:auto}.vs-split-rail::-webkit-scrollbar{display:none}.vs-rail-item{white-space:nowrap;width:auto}.vs-rail-spacer,.vs-rail-sep{display:none}}.vs-scrim-nested{z-index:1250}.vs-edit-split{background:#fff;border:1px solid #e5e7eb;border-radius:12px;height:min(620px,100vh - 210px);display:flex;overflow:hidden}@media (width<=640px){.vs-edit-split{flex-direction:column;height:auto}.vs-edit-split .vs-savebar-wrap{z-index:50;margin-top:0;position:fixed;bottom:12px;left:16px;right:16px}.vs-edit-split .vs-split-pane{padding-bottom:84px}}.vs-edit-head{align-items:center;gap:14px;margin-bottom:16px;display:flex}.vs-edit-idn{flex:1;min-width:0}.vs-edit-name{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:19px;font-weight:500;overflow:hidden}.vs-edit-sub{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:13px;overflow:hidden}.vs-edit-role{color:#5f6368;background:#f1f3f4;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:500;display:inline-flex}.vs-perm-grp{letter-spacing:.05em;text-transform:uppercase;color:#9ca3af;margin:0 0 5px;font-size:11px;font-weight:600}.vs-perm-group{margin-top:28px}.vs-perm-group:first-child{margin-top:6px}.vs-perm-row{border-top:1px solid #f4f5f6;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;display:flex}.vs-perm-mn{min-width:0}.vs-perm-name{color:#1f2937;font-size:13.5px}.vs-perm-key{color:#9ca3af;margin-top:1px;font-family:ui-monospace,Menlo,monospace;font-size:11px}.vs-perm-row.locked{opacity:.5}.vs-perm-row.changed .vs-perm-name{font-weight:500}.vs-perm-row.changed{position:relative}.vs-perm-row.changed:before{content:"";background:#1a73e8;border-radius:2px;width:2px;position:absolute;top:12px;bottom:12px;left:-12px}.vs-tri{background:#eceef1;border-radius:8px;flex-shrink:0;padding:2px;display:inline-flex}.vs-tri button{color:#5f6368;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:4px 11px;font-family:inherit;font-size:12px;transition:color .12s}.vs-tri button:disabled{cursor:default}.vs-tri button.on{background:#fff;font-weight:500;box-shadow:0 1px 2px #0000001a}.vs-tri button.on.on-grant{color:#137333}.vs-tri button.on.on-deny{color:#c5221f}.vs-tri button.on.on-inherit{color:#1f2937}.vs-seg2{background:#eceef1;border-radius:8px;flex-shrink:0;grid-auto-columns:1fr;grid-auto-flow:column;padding:2px;display:inline-grid;position:relative}.vs-seg2.disabled{opacity:.5}.vs-seg2.invalid{box-shadow:0 0 0 2px #c5221f80}.vs-seg2-ind{width:calc((100% - 4px) / var(--n));transform:translateX(calc(var(--i,0) * 100%));background:#fff;border-radius:6px;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;bottom:2px;left:2px;box-shadow:0 1px 2px #0000001a}.vs-seg2-btn{z-index:1;color:#5f6368;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:4px 12px;font-family:inherit;font-size:12px;transition:color .15s;position:relative}.vs-seg2-btn:disabled{cursor:default}.vs-seg2-btn:not(:disabled):not(.on):hover{color:#1f2937}.vs-seg2-btn.on{font-weight:500}.vs-seg2-btn.on.tone-grant{color:#137333}.vs-seg2-btn.on.tone-deny{color:#c5221f}.vs-seg2-btn.on.tone-inherit{color:#1f2937}@media (prefers-reduced-motion:reduce){.vs-seg2-ind{transition:none}}.vs-perm-row.bad .vs-perm-name{color:#c5221f}.vs-perm-note{color:#c5221f;margin-top:3px;font-size:11.5px;line-height:1.4}.vs-savebar.vs-savebar-invalid{border-color:#f2b8b5!important;box-shadow:0 8px 24px #c5221f29,0 0 0 1px #f2b8b5!important}.vs-sb-invalidnote{color:#c5221f;margin-right:auto;padding-right:10px;font-size:12.5px}.vs-roles-page{flex-direction:column;max-width:920px;height:100%;margin:0 auto;display:flex}.vs-roles-page .vs-cv-head{flex-shrink:0}.vs-roles{background:#fff;border:1px solid #eef0f2;border-radius:12px;flex:1;align-items:stretch;min-height:0;display:flex;overflow:hidden}.vs-roles-side{border-right:1px solid #eef0f2;flex-shrink:0;width:290px;overflow-y:auto}.vs-roles-detail{flex:1;min-width:0;padding:20px 22px;overflow-y:auto}.vs-roles-div{border:0;border-top:1px solid #eef0f2;margin:20px 0}.vs-roles-row{text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #f1f3f4;align-items:center;gap:10px;width:100%;padding:11px 14px;font-family:inherit;display:flex}.vs-roles-row:last-child{border-bottom:0}.vs-roles-row:hover{background:#f8f9fb}.vs-roles-row.on{background:#e8f0fe}.vs-roles-mn{flex:1;min-width:0}.vs-roles-name{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.vs-roles-lvl{color:#9ca3af;margin-top:1px;font-size:12px}.vs-roles-pills{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;display:flex}.vs-roles-pill{color:#6b7280;white-space:nowrap;background:#f1f3f4;border-radius:20px;flex-shrink:0;padding:2px 8px;font-size:11px}.vs-roles-pill.sys{color:#1a73e8;background:#e8f0fe}.vs-roles-pill.def{color:#188038;background:#e6f4ea}.vs-roles-detail-h{align-items:center;gap:10px;display:flex}.vs-roles-back{display:none}.vs-roles-card{background:#fff;border:1px solid #eef0f2;border-radius:12px;margin-bottom:14px;padding:16px 18px}.vs-roles-permh{color:#1f2937;font-size:13px;font-weight:500}@media (width<=760px){.vs-roles-page{height:auto}.vs-roles{flex-direction:column;flex:none}.vs-roles-side{border-right:none;width:100%;overflow-y:visible}.vs-roles-detail{overflow-y:visible}.vs-roles.has-sel .vs-roles-side,.vs-roles:not(.has-sel) .vs-roles-detail{display:none}.vs-roles-back{color:#1a73e8;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:10px;padding:0;font-family:inherit;font-size:14px;display:inline-flex}}@media (width<=560px){.vs-perm-row{flex-direction:column;align-items:stretch;gap:8px}.vs-perm-row .vs-seg2{width:100%}}.vs-ptable{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.vs-ptable.locked{opacity:.6;pointer-events:none}.vs-ptable-head{color:#6b7280;background:#f8f9fa;border-bottom:1px solid #eef0f2;align-items:center;gap:10px;padding:8px 11px;font-size:11px;font-weight:500;display:flex}.vs-prow{align-items:center;gap:10px;padding:9px 11px;display:flex}.vs-prow+.vs-prow{border-top:1px solid #eef0f2}.vs-prow-c{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12.5px;overflow:hidden}.vs-prow-c.mut{color:#6b7280}.vs-ptable-empty{text-align:center;color:#9ca3af;padding:22px;font-size:12.5px}.vs-set-page{flex-direction:column;max-width:1000px;height:100%;margin:0 auto;display:flex}.vs-set-head{flex-shrink:0;margin-bottom:14px}.vs-set-title{color:#1f2937;margin:0;font-size:20px;font-weight:500}.vs-set-psub{color:#6b7280;margin:3px 0 0;font-size:13px}.vs-set{background:#fff;border:1px solid #eef0f2;border-radius:12px;flex:1;align-items:stretch;min-height:0;display:flex;overflow:hidden}.vs-set-rail{background:#f8f9fa;border-right:1px solid #eef0f2;flex-shrink:0;width:216px;padding:12px 10px;overflow-y:auto}.vs-set-grp{letter-spacing:.04em;text-transform:uppercase;color:#9ca3af;padding:12px 10px 5px;font-size:11px;font-weight:500}.vs-set-grp:first-child{padding-top:4px}.vs-set-nav{text-align:left;color:#5f6368;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;display:flex}.vs-set-nav:hover{background:#eceef1}.vs-set-nav.on{color:#1a73e8;background:#e8f0fe;font-weight:500}.vs-set-dot{background:#1a73e8;border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-left:auto}.vs-set-pane{flex:1;min-width:0;padding:20px 24px;overflow-y:auto}.vs-set-pane::-webkit-scrollbar{width:6px}.vs-set-pane::-webkit-scrollbar-thumb{background:#c3c8cf;border-radius:3px}.vs-set-h{color:#1f2937;margin:0 0 3px;font-size:15px;font-weight:500}.vs-set-sub{color:#6b7280;max-width:640px;margin:0 0 16px;font-size:12.5px;line-height:1.5}.vs-st-tbl{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.vs-st-th{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;background:#f8f9fa;align-items:center;gap:10px;padding:9px 12px;font-size:11px;font-weight:500;display:flex}.vs-st-tr{color:#1f2937;border-top:1px solid #eef0f2;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.vs-st-tr.changed{background:#f8fbff}.vs-st-empty{text-align:center;color:#9ca3af;border-top:1px solid #eef0f2;padding:22px;font-size:12.5px}.vs-st-pill{border-radius:20px;padding:2px 9px;font-size:11px;font-weight:500;display:inline-block}.vs-st-pill.g{color:#137333;background:#e6f4ea}.vs-st-pill.y{color:#b06000;background:#fef7e0}.vs-st-pill.r{color:#c5221f;background:#fce8e6}.vs-st-pill.n{color:#5f6368;background:#f0f2f5}.vs-set-h-row{align-items:center;gap:10px;margin-bottom:3px;display:flex}.vs-set-h-row .vs-set-h{margin-bottom:0}.vs-switch-inline{align-items:center;gap:10px;display:inline-flex}.vs-warn{color:#7c4a00;background:#fef7e0;border:1px solid #fde293;border-radius:8px;margin:0 0 16px;padding:10px 12px;font-size:12.5px;line-height:1.5}.vs-select-sm{padding:5px 8px;font-size:12.5px}.vs-mono-area{resize:vertical;background:#f9fafb;font-family:monospace;font-size:12px}.vs-copylink{color:#9ca3af;cursor:pointer;font-size:13px}.vs-copylink:hover{color:#6b7280}.vs-modal-warn{color:#c5221f;margin:10px 0 0;font-size:12.5px;font-weight:500}@media (width<=760px){.vs-set-page{height:auto}.vs-set{flex-direction:column;flex:none}.vs-set-rail{border-bottom:1px solid #eef0f2;border-right:0;gap:4px;width:auto;padding:8px;display:flex;overflow-x:auto}.vs-set-rail::-webkit-scrollbar{display:none}.vs-set-grp{display:none}.vs-set-nav{white-space:nowrap;flex-shrink:0;width:auto}.vs-set-pane{padding-bottom:84px;overflow-y:visible}.vs-set .vs-savebar-wrap{z-index:50;margin-top:0;position:fixed;bottom:12px;left:16px;right:16px}}.vs-savebar-wrap{z-index:3;margin-top:22px;position:sticky;bottom:12px}.vs-savebar{background:#fff;border:1px solid #e5e7eb;border-radius:12px;justify-content:flex-end;align-items:center;gap:8px;padding:10px 12px;animation:.16s vs-savebar-in;display:flex;position:relative;box-shadow:0 8px 24px #00000024}@keyframes vs-savebar-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.vs-savebar{animation:none}}.vs-sb-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.vs-sb-left.clk{cursor:pointer}.vs-sb-count{color:#fff;background:#1a73e8;border-radius:99px;flex-shrink:0;padding:1px 8px;font-size:11px;font-weight:600}.vs-sb-pending{flex:1;align-items:center;gap:7px;min-width:0;font-size:12.5px;display:flex;position:relative;overflow:hidden}.vs-sb-tag{color:#1a73e8;white-space:nowrap;background:#e8f0fe;border-radius:6px;flex-shrink:0;padding:2px 8px;font-weight:500}.vs-sb-tag.add{color:#137333;background:#e6f4ea}.vs-sb-tag.remove{color:#c5221f;background:#fce8e6}.vs-sb-more{color:#9ca3af;white-space:nowrap;cursor:inherit;flex-shrink:0}.vs-sb-rail{visibility:hidden;pointer-events:none;gap:7px;width:max-content;display:flex;position:absolute;top:0;left:0}.vs-sb-fadetag{flex:auto;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 86px),#0000 calc(100% - 8px));mask-image:linear-gradient(90deg,#000 calc(100% - 86px),#0000 calc(100% - 8px))}.vs-sb-overmore{position:absolute;right:0}.vs-sb-pop{z-index:4;transform-origin:0 100%;background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-wrap:wrap;gap:5px 8px;width:fit-content;min-width:min-content;max-height:140px;padding:6px;font-size:12.5px;animation:.14s vs-sb-pop-in;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;overflow-y:auto;box-shadow:0 8px 24px #00000029}.vs-sb-pop.out{animation:.15s forwards vs-sb-pop-out}@keyframes vs-sb-pop-in{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:none}}@keyframes vs-sb-pop-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)scale(.97)}}@media (prefers-reduced-motion:reduce){.vs-sb-pop,.vs-sb-pop.out{animation:none}}.vs-enroll{align-items:stretch;gap:16px;height:min(640px,100vh - 200px);display:flex}.vs-enroll-sel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;flex-shrink:0;width:320px;display:flex;overflow:hidden}.vs-enroll-sel-head{flex-shrink:0;padding:12px 12px 0}.vs-enroll-sel-head .vs-search{margin-bottom:12px}.vs-enroll-sel-list{flex:1;min-height:0;padding:0 6px 8px;overflow-y:auto}.vs-enroll-sel-list::-webkit-scrollbar{width:6px}.vs-enroll-sel-list::-webkit-scrollbar-thumb{background:#c3c8cf;border-radius:3px}.vs-enroll-srow{cursor:pointer;border-radius:8px;align-items:center;gap:11px;padding:9px 10px;display:flex}.vs-enroll-srow:hover{background:#f8f9fb}.vs-enroll-srow.on{background:#e8f0fe}.vs-enroll-srow.on .vs-cv-rt{color:#1a73e8}.vs-enroll-srow.on .vs-cv-av{background:#e8eaed}.vs-ps-modal{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:760px;max-height:calc(100vh - 48px);animation:.16s vs-modal-in;display:flex;overflow:hidden;box-shadow:0 12px 32px #0000002e}.vs-ps-head{border-bottom:1px solid #eef0f2;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.vs-ps-title{color:#1f2937;font-size:15px;font-weight:500}.vs-ps-sub{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.vs-ps-sub span{color:#1f2937}.vs-ps-x{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;display:flex}.vs-ps-x:hover{color:#5f6368;background:#f1f3f4}.vs-ps-x svg{width:20px;height:20px}.vs-ps-body{height:460px;min-height:0;display:flex}.vs-ps-side{border-right:1px solid #eef0f2;flex-direction:column;flex-shrink:0;width:244px;min-height:0;display:flex}.vs-ps-search-wrap{flex-shrink:0;padding:12px 12px 4px}.vs-ps-search{position:relative}.vs-ps-search input{color:#1f2937;box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;width:100%;height:34px;padding:0 10px 0 32px;font-family:inherit;font-size:13px}.vs-ps-search input:focus{border-color:#1a73e8;outline:none;box-shadow:0 0 0 3px #1a73e81f}.vs-ps-search>svg{color:#9ca3af;pointer-events:none;width:15px;height:15px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.vs-ps-count{color:#9ca3af;min-height:14px;margin:7px 2px 0;font-size:11px}.vs-ps-slist{flex:1;padding:4px 8px 10px;overflow-y:auto}.vs-ps-srow{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:7px 8px;font-family:inherit;display:flex}.vs-ps-srow:hover{background:#f8f9fb}.vs-ps-srow.on{background:#e8f0fe}.vs-ps-srow.on .vs-cv-av{background:#e8eaed}.vs-ps-sinfo{flex:1;min-width:0}.vs-ps-sname{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;align-items:center;font-size:13px;display:flex;overflow:hidden}.vs-ps-suser{color:#9ca3af;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.vs-ps-stot{color:#6b7280;flex-shrink:0;font-size:11px}.vs-ps-tag{color:#1a73e8;background:#e8f0fe;border-radius:20px;flex-shrink:0;margin-left:6px;padding:1px 6px;font-size:10px}.vs-ps-skav{color:#0000!important;background:#eceef1!important}.vs-ps-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.vs-ps-mhead{border-bottom:1px solid #f1f3f4;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:10px;padding:13px 16px 11px;display:flex}.vs-ps-mh-t{color:#1f2937;font-size:13px;font-weight:500}.vs-ps-mh-s{color:#6b7280;margin-top:2px;font-size:11px}.vs-ps-backrow{text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #f1f3f4;flex-shrink:0;align-items:center;gap:9px;width:100%;padding:11px 16px;font-family:inherit;display:flex}.vs-ps-backrow:hover{background:#f8f9fb}.vs-ps-backrow>svg:first-child{color:#9ca3af;flex-shrink:0;width:16px;height:16px}.vs-ps-backav{width:28px!important;height:28px!important;font-size:11px!important}.vs-ps-reset{color:#c5221f;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #f2b8b5;border-radius:7px;flex-shrink:0;align-items:center;gap:5px;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:500;transition:background .12s;display:inline-flex}.vs-ps-reset svg{width:13px;height:13px}.vs-ps-reset:hover:not(:disabled){background:#fce8e6}.vs-ps-reset:disabled{opacity:.5;cursor:default}.vs-ps-vlist{flex:1;min-height:0;padding:2px 0 6px;overflow-y:auto}.vs-ps-vrow{border-bottom:1px solid #f4f5f6;align-items:center;gap:12px;padding:9px 16px;display:flex}.vs-ps-vrow.none{opacity:.5}.vs-ps-vmn{flex:1;min-width:0}.vs-ps-vt{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.vs-ps-vd{color:#9ca3af;margin-top:1px;font-size:11px}.vs-ps-vr{text-align:right;flex-shrink:0}.vs-ps-vr1{color:#1f2937;font-size:12px}.vs-ps-vr2{color:#9ca3af;margin-top:1px;font-size:11px}.vs-ps-time{cursor:pointer;border-bottom:1px dotted #c9ccd1;outline:none}.vs-ps-time:focus-visible{border-radius:3px;box-shadow:0 0 0 2px #1a73e866}.vs-tip{z-index:1350;color:#fff;white-space:nowrap;pointer-events:none;background:#1f2937;border-radius:7px;max-width:calc(100vw - 16px);padding:6px 9px;font-size:12px;line-height:1.45;animation:.14s ease-in-out vs-tip-in;position:fixed;box-shadow:0 6px 20px #0000003d}@keyframes vs-tip-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.vs-pmenu-panel,.vs-sort-menu,.vs-tip{animation:none}}.vs-ps-empty{text-align:center;color:#9ca3af;padding:20px 14px;font-size:12px}.vs-ps-empty-lg{padding:40px 16px;font-size:13px}.vs-ps-panehead{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.vs-ps-resets{flex-shrink:0;gap:8px;display:flex}.vs-ps-chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.vs-ps-chip{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:20px;align-items:baseline;gap:6px;max-width:240px;padding:6px 11px;font-family:inherit;display:flex}.vs-ps-chip:hover{background:#f8f9fb}.vs-ps-chip.on{background:#e8f0fe;border:1.5px solid #1a73e8;padding:5.5px 10.5px}.vs-ps-chip-code{color:#1f2937;flex-shrink:0;font-size:12px;font-weight:500}.vs-ps-chip.on .vs-ps-chip-code{color:#1a73e8}.vs-ps-chip-name{color:#9ca3af;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.vs-split-pane .vs-ps-vrow{padding-left:0;padding-right:0}@media (width<=620px){.vs-ps-body{height:70vh}.vs-ps-side{border-right:none;width:100%}.vs-ps-modal.has-sel .vs-ps-side,.vs-ps-modal:not(.has-sel) .vs-ps-main{display:none}}.vs-tc{flex-direction:column;max-width:920px;height:100%;margin:0 auto;display:flex}.vs-tc-head{flex-shrink:0}.vs-tc-headrow{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px;display:flex}.vs-tc-filters{background:#eceef1;border-radius:9px;gap:2px;max-width:100%;margin-bottom:14px;padding:3px;display:inline-flex;overflow-x:auto}.vs-tc-fbtn{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;padding:5px 12px;font-family:inherit;font-size:13px;font-weight:400}.vs-tc-fbtn:hover:not(.on){color:#1f2937}.vs-tc-fbtn.on{color:#1f2937;background:#fff;border-color:#e0e2e6;font-weight:500}.vs-tc-fbtn .n{color:#9ca3af}.vs-tc-fbtn.on .n{color:#6b7280}.vs-tc-card{background:#fff;border:1px solid #eef0f2;border-radius:12px;flex:1;min-height:0;overflow-y:auto}.vs-tc-empty{text-align:center;color:#9ca3af;padding:44px 16px;font-size:13px}.vs-tc-row{border-bottom:1px solid #f1f3f4;gap:12px;padding:12px 16px;display:flex}.vs-tc-row:last-child{border-bottom:0}.vs-tc-ic{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.vs-tc-ic svg{width:17px;height:17px}.vs-tc-mn{flex:1;min-width:0}.vs-tc-toprow{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.vs-tc-title{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.vs-tc-meta{color:#6b7280;word-break:break-word;margin-top:2px;font-size:12px;line-height:1.55}.vs-tc-jid{color:#9ca3af;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.vs-tc-err{color:#c5221f;word-break:break-word;margin-top:5px;font-size:12px}.vs-tc-pbar{background:#eceef1;border-radius:3px;max-width:420px;height:4px;margin-top:8px;overflow:hidden}.vs-tc-pfill{background:#1a73e8;border-radius:3px;height:100%;transition:width .3s}.vs-tc-pill{white-space:nowrap;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.vs-tc-accent{color:#1a73e8;background:#e8f0fe}.vs-tc-success{color:#188038;background:#e6f4ea}.vs-tc-danger{color:#c5221f;background:#fce8e6}.vs-tc-neutral{color:#6b7280;background:#f1f3f4}@keyframes vs-tc-spin{to{transform:rotate(360deg)}}.vs-tc-spin{transform-origin:50%;animation:.9s linear infinite vs-tc-spin}@media (width<=768px){.vs-tc{height:auto}.vs-tc-card{flex:none;overflow:visible}}.vs-enroll-chev{color:#c3c8cf;flex-shrink:0;margin-left:auto;display:none}.vs-enroll-chev svg{width:18px;height:18px}.vs-enroll-back{font:inherit;color:#6b7280;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-bottom:12px;padding:0;font-size:13px;display:none}.vs-enroll-back:hover{color:#1a73e8}.vs-enroll-back svg{width:16px;height:16px}.vs-enroll-count{text-align:right;flex-shrink:0;line-height:1.15}.vs-enroll-count-n{color:#1f2937;font-size:24px;font-weight:500}.vs-enroll-count-l{color:#9ca3af;font-size:12px}.vs-cs-line{font-size:15px}.vs-cs-code{color:#1f2937;margin-right:12px;font-size:13.5px}.vs-cs-name{color:#1f2937}.vs-enroll-pane{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.vs-enroll-scroll{flex:1;min-height:0;padding:18px 20px;overflow-y:auto}.vs-enroll-scroll::-webkit-scrollbar{width:6px}.vs-enroll-scroll::-webkit-scrollbar-thumb{background:#c3c8cf;border-radius:3px}.vs-enroll-empty{color:#9ca3af;justify-content:center;align-items:center;height:100%;font-size:14px;display:flex}.vs-cv-row.staged-add,.vs-cv-row.staged-remove{position:relative}.vs-cv-row.staged-add:before,.vs-cv-row.staged-remove:before{content:"";border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:0}.vs-cv-row.staged-add:before{background:#137333}.vs-cv-row.staged-remove:before{background:#c5221f}@media (width<=760px){.vs-enroll{flex-direction:column;gap:0;height:auto}.vs-enroll-sel,.vs-enroll-pane{width:auto}.vs-enroll-sel-list,.vs-enroll-scroll{overflow:visible}.vs-enroll:not(.has-selection) .vs-enroll-pane,.vs-enroll.has-selection .vs-enroll-sel{display:none}.vs-enroll-chev,.vs-enroll-back{display:inline-flex}.vs-enroll .vs-savebar-wrap{z-index:50;margin-top:0;position:fixed;bottom:12px;left:16px;right:16px}.vs-enroll.has-staged .vs-enroll-scroll{padding-bottom:84px}}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.vs-savebar{-webkit-backdrop-filter:blur(18px)saturate(1.8);backdrop-filter:blur(18px)saturate(1.8);background:#ffffff9e;border-color:#ffffff8c;box-shadow:0 8px 24px #00000024,inset 0 1px #ffffffa6,inset 0 0 0 1px #0000000d}}.vs-head-action{flex-shrink:0;align-self:center;margin-top:5px}.vs-titlerow{align-items:center;gap:4px;min-width:0;display:flex}.vs-title-edit{color:#9ca3af;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.vs-title-edit:hover{color:#1a73e8;background:#eef0f3}.vs-title-edit svg{width:16px;height:16px}.vs-toggle{justify-content:space-between;align-items:center;gap:14px;display:flex}.vs-toggle-lbl{flex:1}.vs-toggle-lbl .vs-label{margin-bottom:2px}.vs-switch{flex-shrink:0;width:40px;height:22px;display:inline-block;position:relative}.vs-switch input{opacity:0;width:0;height:0}.vs-switch-slider{cursor:pointer;background:#d1d5db;border-radius:22px;transition:background .16s;position:absolute;inset:0}.vs-switch-slider:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.vs-switch input:checked+.vs-switch-slider{background:#1a73e8}.vs-switch input:checked+.vs-switch-slider:before{transform:translate(18px)}.vs-switch input:disabled+.vs-switch-slider{opacity:.45;cursor:default}.vs-dropveil{z-index:1300;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);pointer-events:none;background:#1a73e81a;justify-content:center;align-items:center;padding:24px;animation:.1s vs-scrim-in;display:flex;position:fixed;inset:0}.vs-dropveil-box{background:#fff;border:2px dashed #1a73e8;border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:30px 40px;display:flex;box-shadow:0 12px 32px #0000002e}.vs-dropveil-ico{color:#1a73e8;display:flex}.vs-dropveil-ico svg{width:34px;height:34px}.vs-dropveil-t{color:#1f2937;margin:0;font-size:15px;font-weight:500}.vs-dropveil-h{color:#6b7280;margin:0;font-size:12.5px}.vs-dropveil.refuse{background:#c5221f1a}.vs-dropveil.refuse .vs-dropveil-box{border-color:#c5221f;animation:.3s vs-refuse-shake}.vs-dropveil.refuse .vs-dropveil-ico,.vs-dropveil.refuse .vs-dropveil-t{color:#c5221f}@keyframes vs-refuse-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.vs-back{color:#6b7280;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin-bottom:8px;padding:0;font-family:inherit;font-size:13px;text-decoration:none;display:inline-flex}.vs-back:hover{color:#1a73e8;text-decoration:none}.vs-back svg{width:15px;height:15px}
