*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Helvetica Neue',Arial,sans-serif;font-size:16px;line-height:1.6;color:#333;background-color:#f5f5f5}
ul,ol{list-style:none}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
button{border:none;background:none;cursor:pointer;font-family:inherit}
input,textarea,select{font-family:inherit;font-size:inherit}
:root{--primary-color:#1890ff;--primary-hover:#40a9ff;--primary-active:#096dd9;--success-color:#52c41a;--warning-color:#faad14;--danger-color:#ff4d4f;--info-color:#1890ff;--text-primary:#333333;--text-secondary:#666666;--text-disabled:#999999;--bg-primary:#ffffff;--bg-secondary:#f5f5f5;--bg-disabled:#f0f0f0;--border-color:#d9d9d9;--border-light:#e8e8e8;--shadow-sm:0 2px 4px rgba(0,0,0,0.1);--shadow-md:0 4px 8px rgba(0,0,0,0.12);--shadow-lg:0 8px 16px rgba(0,0,0,0.15);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}
.card{background:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);transition:all 0.3s ease;border:1px solid transparent}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card.interactive{cursor:pointer}
.card.interactive:hover{border-color:var(--primary-color);box-shadow:var(--shadow-lg)}
.card.interactive:active{transform:translateY(0);box-shadow:var(--shadow-sm)}
.card-header{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light);margin-bottom:var(--spacing-md);font-size:18px;font-weight:600;color:var(--text-primary)}
.card-body{color:var(--text-secondary);line-height:1.8}
.card-footer{padding-top:var(--spacing-md);border-top:1px solid var(--border-light);margin-top:var(--spacing-md);display:flex;justify-content:flex-end;gap:var(--spacing-sm)}
.flex-row{display:flex;flex-direction:row}
.flex-col{display:flex;flex-direction:column}
.flex-center{display:flex;justify-content:center;align-items:center}
.flex-between{display:flex;justify-content:space-between;align-items:center}
.flex-wrap{flex-wrap:wrap}
.flex-1{flex:1}
.grid{display:grid}
.grid-2{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}
.grid-3{grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}
.grid-4{grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}
.form-group{margin-bottom:var(--spacing-md);position:relative}
.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--text-primary);transition:color 0.3s ease}
.form-label.required::after{content:'*';color:var(--danger-color);margin-left:4px}
.form-input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;transition:all 0.3s ease;background:var(--bg-primary);outline:none}
.form-input:hover:not(:disabled):not(:focus){border-color:var(--primary-hover)}
.form-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(24,144,255,0.1);transform:translateY(-1px)}
.form-input:disabled{background:var(--bg-disabled);color:var(--text-disabled);cursor:not-allowed;opacity:0.7}
.form-input.error{border-color:var(--danger-color);animation:shake 0.5s ease-in-out}
.form-input.error:focus{box-shadow:0 0 0 3px rgba(255,77,79,0.1)}
.form-input.success{border-color:var(--success-color)}
.form-input.success:focus{box-shadow:0 0 0 3px rgba(82,196,26,0.1)}
.form-error{display:block;margin-top:var(--spacing-xs);font-size:12px;color:var(--danger-color);animation:slideDown 0.3s ease-out}
.form-success{display:block;margin-top:var(--spacing-xs);font-size:12px;color:var(--success-color);animation:slideDown 0.3s ease-out}
.form-radio,.form-checkbox{display:inline-flex;align-items:center;margin-right:var(--spacing-md);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:background-color 0.3s ease}
.form-radio:hover,.form-checkbox:hover{background-color:rgba(24,144,255,0.05)}
.form-radio input,.form-checkbox input{margin-right:var(--spacing-xs);cursor:pointer;width:16px;height:16px;transition:all 0.3s ease}
.form-radio input:focus,.form-checkbox input:focus{outline:2px solid var(--primary-color);outline-offset:2px}
textarea.form-input{min-height:100px;resize:vertical;line-height:1.6}
select.form-input{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;appearance:none}
select.form-input:hover:not(:disabled){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%231890ff' d='M6 9L1 4h10z'/%3E%3C/svg%3E")}
.form-input-icon{position:relative}
.form-input-icon .form-input{padding-left:36px}
.form-input-icon::before{content:'';position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}
.form-group.has-success .form-input{padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%2352c41a' d='M13.5 3L6 10.5 2.5 7l-1 1L6 12.5 14.5 4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.form-group.has-error .form-input{padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23ff4d4f' d='M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 10.9L10.9 12 8 9.1 5.1 12 4 10.9 6.9 8 4 5.1 5.1 4 8 6.9 10.9 4 12 5.1 9.1 8 12 10.9z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.btn{display:inline-block;padding:10px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;text-align:center;cursor:pointer;transition:all 0.3s ease;border:1px solid transparent;user-select:none;position:relative;overflow:hidden;outline:none}
.btn::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,0.3);transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}
.btn:active:not(:disabled)::before{width:300px;height:300px}
.btn:disabled{opacity:0.6;cursor:not-allowed;transform:none !important}
.btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}
.btn-primary{background:var(--primary-color);color:#ffffff;box-shadow:0 2px 4px rgba(24,144,255,0.2)}
.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 8px rgba(24,144,255,0.3);transform:translateY(-2px)}
.btn-primary:active:not(:disabled){background:var(--primary-active);box-shadow:0 1px 2px rgba(24,144,255,0.2);transform:translateY(0)}
.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color);box-shadow:0 1px 2px rgba(0,0,0,0.05)}
.btn-secondary:hover:not(:disabled){color:var(--primary-color);border-color:var(--primary-color);background:rgba(24,144,255,0.05);box-shadow:0 2px 4px rgba(0,0,0,0.1);transform:translateY(-1px)}
.btn-secondary:active:not(:disabled){background:rgba(24,144,255,0.1);box-shadow:0 1px 2px rgba(0,0,0,0.05);transform:translateY(0)}
.btn-danger{background:var(--danger-color);color:#ffffff;box-shadow:0 2px 4px rgba(255,77,79,0.2)}
.btn-danger:hover:not(:disabled){background:#ff7875;box-shadow:0 4px 8px rgba(255,77,79,0.3);transform:translateY(-2px)}
.btn-danger:active:not(:disabled){background:#d9363e;box-shadow:0 1px 2px rgba(255,77,79,0.2);transform:translateY(0)}
.btn-success{background:var(--success-color);color:#ffffff;box-shadow:0 2px 4px rgba(82,196,26,0.2)}
.btn-success:hover:not(:disabled){background:#73d13d;box-shadow:0 4px 8px rgba(82,196,26,0.3);transform:translateY(-2px)}
.btn-success:active:not(:disabled){background:#389e0d;box-shadow:0 1px 2px rgba(82,196,26,0.2);transform:translateY(0)}
.btn-block{width:100%;display:block}
.btn-lg{padding:12px 24px;font-size:16px}
.btn-sm{padding:6px 12px;font-size:12px}
.btn-group{display:inline-flex;gap:var(--spacing-sm)}
.btn-group .btn{margin:0}
.navbar{background:var(--bg-primary);box-shadow:var(--shadow-sm);padding:var(--spacing-md) 0;position:sticky;top:0;z-index:1000;transition:all 0.3s ease;backdrop-filter:blur(10px)}
.navbar.scrolled{box-shadow:var(--shadow-md);padding:var(--spacing-sm) 0}
.navbar-content{display:flex;justify-content:space-between;align-items:center}
.navbar-brand{font-size:20px;font-weight:600;color:var(--primary-color);transition:all 0.3s ease;cursor:pointer}
.navbar-brand:hover{transform:scale(1.05);color:var(--primary-hover)}
.navbar-menu{display:flex;align-items:center;gap:var(--spacing-lg)}
.nav-item{color:var(--text-primary);cursor:pointer;transition:all 0.3s ease;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);position:relative}
.nav-item::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--primary-color);transition:all 0.3s ease;transform:translateX(-50%)}
.nav-item:hover{color:var(--primary-color);background:rgba(24,144,255,0.05)}
.nav-item:hover::after{width:80%}
.nav-item.active{color:var(--primary-color);font-weight:500}
.nav-item.active::after{width:80%}
.nav-item:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}
.text-left{text-align:left}
.text-center{text-align:center}
.text-right{text-align:right}
.text-primary{color:var(--text-primary)}
.text-secondary{color:var(--text-secondary)}
.text-disabled{color:var(--text-disabled)}
.text-success{color:var(--success-color)}
.text-warning{color:var(--warning-color)}
.text-danger{color:var(--danger-color)}
.bg-primary{background-color:var(--bg-primary)}
.bg-secondary{background-color:var(--bg-secondary)}
.mt-xs{margin-top:var(--spacing-xs)}
.mt-sm{margin-top:var(--spacing-sm)}
.mt-md{margin-top:var(--spacing-md)}
.mt-lg{margin-top:var(--spacing-lg)}
.mt-xl{margin-top:var(--spacing-xl)}
.mb-xs{margin-bottom:var(--spacing-xs)}
.mb-sm{margin-bottom:var(--spacing-sm)}
.mb-md{margin-bottom:var(--spacing-md)}
.mb-lg{margin-bottom:var(--spacing-lg)}
.mb-xl{margin-bottom:var(--spacing-xl)}
.ml-xs{margin-left:var(--spacing-xs)}
.ml-sm{margin-left:var(--spacing-sm)}
.ml-md{margin-left:var(--spacing-md)}
.ml-lg{margin-left:var(--spacing-lg)}
.ml-xl{margin-left:var(--spacing-xl)}
.mr-xs{margin-right:var(--spacing-xs)}
.mr-sm{margin-right:var(--spacing-sm)}
.mr-md{margin-right:var(--spacing-md)}
.mr-lg{margin-right:var(--spacing-lg)}
.mr-xl{margin-right:var(--spacing-xl)}
.pt-xs{padding-top:var(--spacing-xs)}
.pt-sm{padding-top:var(--spacing-sm)}
.pt-md{padding-top:var(--spacing-md)}
.pt-lg{padding-top:var(--spacing-lg)}
.pt-xl{padding-top:var(--spacing-xl)}
.pb-xs{padding-bottom:var(--spacing-xs)}
.pb-sm{padding-bottom:var(--spacing-sm)}
.pb-md{padding-bottom:var(--spacing-md)}
.pb-lg{padding-bottom:var(--spacing-lg)}
.pb-xl{padding-bottom:var(--spacing-xl)}
.pl-xs{padding-left:var(--spacing-xs)}
.pl-sm{padding-left:var(--spacing-sm)}
.pl-md{padding-left:var(--spacing-md)}
.pl-lg{padding-left:var(--spacing-lg)}
.pl-xl{padding-left:var(--spacing-xl)}
.pr-xs{padding-right:var(--spacing-xs)}
.pr-sm{padding-right:var(--spacing-sm)}
.pr-md{padding-right:var(--spacing-md)}
.pr-lg{padding-right:var(--spacing-lg)}
.pr-xl{padding-right:var(--spacing-xl)}
.hidden{display:none !important}
.visible{display:block !important}
.text-xs{font-size:12px}
.text-sm{font-size:14px}
.text-md{font-size:16px}
.text-lg{font-size:18px}
.text-xl{font-size:20px}
.text-2xl{font-size:24px}
.text-3xl{font-size:32px}
.font-normal{font-weight:400}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.font-bold{font-weight:700}
.rounded-sm{border-radius:var(--radius-sm)}
.rounded-md{border-radius:var(--radius-md)}
.rounded-lg{border-radius:var(--radius-lg)}
.rounded-full{border-radius:9999px}
.shadow-sm{box-shadow:var(--shadow-sm)}
.shadow-md{box-shadow:var(--shadow-md)}
.shadow-lg{box-shadow:var(--shadow-lg)}
.w-full{width:100%}
.w-auto{width:auto}
.h-full{height:100%}
.h-auto{height:auto}
.cursor-pointer{cursor:pointer}
.cursor-not-allowed{cursor:not-allowed}
@media (max-width:374px){html{font-size:14px}
    .container{padding:0 var(--spacing-xs)}
    .card{padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);border-radius:var(--radius-sm)}
    .navbar-brand{font-size:16px}
    .btn{padding:8px 12px;font-size:12px;min-height:36px}
    .form-input{padding:8px 10px;font-size:13px;min-height:36px}
    .form-label{font-size:13px}
    .question-navigator{grid-template-columns:repeat(auto-fill,minmax(35px,1fr));gap:var(--spacing-xs);padding:var(--spacing-sm)}
    .question-nav-item{font-size:12px}
}@media (max-width:767px){.container{padding:0 var(--spacing-sm)}
    .card{padding:var(--spacing-md);border-radius:var(--radius-sm)}
    .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;gap:var(--spacing-sm)}
    .navbar{padding:var(--spacing-sm) 0}
    .navbar-menu{gap:var(--spacing-sm);font-size:14px;flex-wrap:wrap}
    .navbar-brand{font-size:18px}
    .nav-item{padding:var(--spacing-xs);font-size:13px}
    .btn{padding:12px 16px;font-size:14px;width:100%;margin-bottom:var(--spacing-sm);min-height:44px;touch-action:manipulation}
    .btn-sm{padding:8px 12px;font-size:12px;min-height:36px}
    .btn-lg{padding:14px 20px;font-size:15px;min-height:48px}
    .btn-group{flex-direction:column;width:100%}
    .btn-group .btn{width:100%}
    .form-group{margin-bottom:var(--spacing-md)}
    .form-input{padding:12px;font-size:16px;min-height:44px;-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm)}
    .form-label{font-size:14px;margin-bottom:var(--spacing-sm);font-weight:600}
    .form-radio,.form-checkbox{margin-right:var(--spacing-md);margin-bottom:var(--spacing-sm);padding:var(--spacing-sm);min-height:44px}
    .form-radio input,.form-checkbox input{width:20px;height:20px;margin-right:var(--spacing-sm)}
    textarea.form-input{min-height:120px}
    select.form-input{background-position:right 16px center;padding-right:40px}
    .modal{width:95%;max-height:90vh;margin:var(--spacing-sm)}
    .modal-header,.modal-body,.modal-footer{padding:var(--spacing-md)}
    .modal-footer{flex-direction:column;gap:var(--spacing-sm)}
    .modal-footer .btn{width:100%;margin-bottom:0}
    .modal-close{width:40px;height:40px}
    .message{min-width:280px;width:90%;max-width:350px;font-size:14px;padding:14px 20px;top:16px}
    .flex-row{flex-direction:column}
    .flex-between{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}
    .hide-mobile{display:none !important}
    video{width:100%;height:auto;max-height:300px;min-height:200px;object-fit:cover;border-radius:var(--radius-sm)}
    canvas{width:100%;height:auto;border-radius:var(--radius-sm)}
    .video-container{margin-bottom:var(--spacing-md)}
    .video-overlay{padding:var(--spacing-sm)}
    .video-control-btn{width:44px;height:44px}
    .video-status{font-size:11px;padding:6px 10px}
    .question-navigator{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:var(--spacing-xs);padding:var(--spacing-sm)}
    .question-nav-item{font-size:13px;min-height:38px}
    .countdown{font-size:16px;padding:var(--spacing-sm)}
    .tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
    .tabs::-webkit-scrollbar{display:none}
    .tab-item{padding:var(--spacing-sm) var(--spacing-md);white-space:nowrap;font-size:14px}
    .card:hover{transform:none}
    .card.interactive:active{transform:scale(0.98)}
    .list-item{padding:var(--spacing-md);font-size:14px}
    .list-item:hover{padding-left:var(--spacing-md)}
    .progress-bar{height:10px}
    .badge{font-size:11px;padding:4px 6px}
}@media (min-width:768px) and (max-width:1023px){.container{max-width:720px;padding:0 var(--spacing-md)}
    .grid-3,.grid-4{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}
    .grid-2{gap:var(--spacing-md)}
    .btn{width:auto;margin-bottom:0;padding:10px 20px;min-height:40px}
    .btn-group{flex-direction:row}
    .flex-row{flex-direction:row}
    .flex-between{flex-direction:row;align-items:center}
    .form-input{font-size:15px;padding:10px 12px;min-height:40px}
    .form-radio,.form-checkbox{min-height:auto}
    .form-radio input,.form-checkbox input{width:18px;height:18px}
    .modal{width:80%;max-width:600px}
    .modal-footer{flex-direction:row;justify-content:flex-end}
    .modal-footer .btn{width:auto;margin-bottom:0}
    .video-control-btn{width:48px;height:48px}
    .question-navigator{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:var(--spacing-sm);padding:var(--spacing-md)}
    .question-nav-item{font-size:14px}
    .navbar-menu{gap:var(--spacing-md)}
    .nav-item{padding:var(--spacing-xs) var(--spacing-sm);font-size:14px}
    .card{padding:var(--spacing-lg)}
    .countdown{font-size:18px}
    .tab-item{padding:var(--spacing-sm) var(--spacing-lg);font-size:15px}
    .hide-tablet{display:none !important}
}@media (min-width:1024px){.container{max-width:1200px;padding:0 var(--spacing-lg)}
    .grid-2{gap:var(--spacing-lg)}
    .grid-3{grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}
    .grid-4{grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg)}
    .card{padding:var(--spacing-xl)}
    .card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
    .card.interactive:hover{transform:translateY(-6px)}
    .btn{padding:10px 24px;transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}
    .btn:hover:not(:disabled){transform:translateY(-2px)}
    .btn-lg{padding:14px 32px;font-size:16px}
    .form-input{font-size:14px;transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}
    .form-input:hover:not(:disabled):not(:focus){border-color:var(--primary-hover);box-shadow:0 2px 4px rgba(0,0,0,0.05)}
    .form-input:focus{transform:translateY(-2px);box-shadow:0 4px 8px rgba(24,144,255,0.15)}
    .navbar-menu{gap:var(--spacing-xl)}
    .nav-item{padding:var(--spacing-sm) var(--spacing-md);font-size:15px}
    .nav-item:hover{transform:translateY(-2px)}
    .video-container{transition:all 0.3s ease}
    .video-container:hover{box-shadow:var(--shadow-lg)}
    .video-control-btn{width:52px;height:52px}
    .question-navigator{grid-template-columns:repeat(auto-fill,minmax(45px,1fr));gap:var(--spacing-md);padding:var(--spacing-lg)}
    .question-nav-item{font-size:15px}
    .question-nav-item:hover{transform:scale(1.15)}
    .modal{max-width:600px}
    .modal-lg{max-width:900px}
    .modal-xl{max-width:1200px}
    .list-item:hover{padding-left:calc(var(--spacing-md) + 8px);box-shadow:var(--shadow-sm)}
    .countdown{font-size:20px;padding:var(--spacing-md) var(--spacing-lg)}
    .tab-item{padding:var(--spacing-md) var(--spacing-xl);font-size:16px}
    .tab-item:hover{transform:translateY(-2px)}
    .message{min-width:320px;max-width:400px;padding:14px 24px;font-size:15px}
    .hide-desktop{display:none !important}
}@media (min-width:1440px){.container{max-width:1400px}
    html{font-size:17px}
    .card{padding:var(--spacing-xl)}
    .modal-xl{max-width:1400px}
    video{max-height:400px}
    .question-navigator{grid-template-columns:repeat(auto-fill,minmax(48px,1fr))}
}@media (hover:none) and (pointer:coarse){.btn{min-height:44px;padding:12px 20px}
    .form-input{min-height:44px}
    .nav-item{padding:var(--spacing-sm)}
    .btn:hover,.nav-item:hover{transform:none}
}@keyframes fadeIn{from{opacity:0}
     to{opacity:1}
 }@keyframes fadeOut{from{opacity:1}
      to{opacity:0}
  }@keyframes slideDown{from{transform:translateY(-20px);opacity:0}
       to{transform:translateY(0);opacity:1}
   }@keyframes slideUp{from{transform:translateY(20px);opacity:0}
        to{transform:translateY(0);opacity:1}
    }@keyframes slideInLeft{from{transform:translateX(-20px);opacity:0}
         to{transform:translateX(0);opacity:1}
     }@keyframes slideInRight{from{transform:translateX(20px);opacity:0}
          to{transform:translateX(0);opacity:1}
      }@keyframes scaleIn{from{transform:scale(0.9);opacity:0}
           to{transform:scale(1);opacity:1}
       }@keyframes spin{from{transform:rotate(0deg)}
            to{transform:rotate(360deg)}
        }@keyframes pulse{0%,100%{opacity:1}
             50%{opacity:0.5}
         }@keyframes bounce{0%,100%{transform:translateY(0)}
              50%{transform:translateY(-10px)}
          }@keyframes shake{0%,100%{transform:translateX(0)}
               25%{transform:translateX(-10px)}
               75%{transform:translateX(10px)}
           }.fade-in{animation:fadeIn 0.3s ease-in}
.fade-out{animation:fadeOut 0.3s ease-out}
.slide-down{animation:slideDown 0.3s ease-out}
.slide-up{animation:slideUp 0.3s ease-out}
.slide-in-left{animation:slideInLeft 0.3s ease-out}
.slide-in-right{animation:slideInRight 0.3s ease-out}
.scale-in{animation:scaleIn 0.3s ease-out}
.pulse{animation:pulse 2s ease-in-out infinite}
.bounce{animation:bounce 1s ease-in-out infinite}
.shake{animation:shake 0.5s ease-in-out}
.page-loading{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);display:flex;justify-content:center;align-items:center;z-index:10000;animation:fadeOut 0.5s ease-out 0.5s forwards}
.page-loading-spinner{width:50px;height:50px;border:4px solid var(--border-light);border-top-color:var(--primary-color);border-radius:50%;animation:spin 0.8s linear infinite}
.page-content{animation:fadeIn 0.5s ease-in}
.transition-all{transition:all 0.3s ease}
.transition-colors{transition:color 0.3s ease,background-color 0.3s ease,border-color 0.3s ease}
.transition-transform{transition:transform 0.3s ease}
.transition-opacity{transition:opacity 0.3s ease}
.message{position:fixed;top:20px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:9999;animation:slideDown 0.3s ease-out;min-width:300px;text-align:center}
.message-success{background:var(--success-color);color:#ffffff}
.message-error{background:var(--danger-color);color:#ffffff}
.message-warning{background:var(--warning-color);color:#ffffff}
.message-info{background:var(--info-color);color:#ffffff}
.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:9998}
.loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,0.3);border-top-color:#ffffff;border-radius:50%;animation:spin 0.8s linear infinite}
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:9000;animation:fadeIn 0.3s ease-in;backdrop-filter:blur(4px)}
.modal{background:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-width:500px;width:90%;max-height:80vh;overflow-y:auto;animation:scaleIn 0.3s ease-out;position:relative}
.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-light);font-size:18px;font-weight:600;display:flex;justify-content:space-between;align-items:center}
.modal-close{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease;color:var(--text-secondary)}
.modal-close:hover{background:var(--bg-secondary);color:var(--text-primary);transform:rotate(90deg)}
.modal-body{padding:var(--spacing-lg)}
.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:var(--spacing-sm)}
.modal-sm{max-width:400px}
.modal-lg{max-width:800px}
.modal-xl{max-width:1200px}
.video-container{position:relative;width:100%;background:#000;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}
.video-container video{width:100%;height:auto;display:block;object-fit:cover}
.video-container canvas{width:100%;height:auto;display:block}
.video-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;justify-content:space-between;padding:var(--spacing-md);background:linear-gradient(to bottom,rgba(0,0,0,0.3) 0%,transparent 30%,transparent 70%,rgba(0,0,0,0.3) 100%);pointer-events:none}
.video-status{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:rgba(0,0,0,0.6);color:#fff;border-radius:var(--radius-sm);font-size:12px;backdrop-filter:blur(4px)}
.video-status.recording::before{content:'';width:8px;height:8px;background:var(--danger-color);border-radius:50%;animation:pulse 2s ease-in-out infinite}
.video-controls{display:flex;justify-content:center;gap:var(--spacing-sm);pointer-events:auto}
.video-control-btn{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,0.9);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease;box-shadow:var(--shadow-md)}
.video-control-btn:hover{background:#fff;transform:scale(1.1);box-shadow:var(--shadow-lg)}
.video-control-btn:active{transform:scale(0.95)}
.progress-bar{width:100%;height:8px;background:var(--bg-secondary);border-radius:var(--radius-sm);overflow:hidden;position:relative}
.progress-bar-fill{height:100%;background:var(--primary-color);border-radius:var(--radius-sm);transition:width 0.3s ease;position:relative;overflow:hidden}
.progress-bar-fill::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);animation:shimmer 2s infinite}
@keyframes shimmer{0%{transform:translateX(-100%)}
    100%{transform:translateX(100%)}
}.progress-bar-striped .progress-bar-fill{background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:1rem 1rem;animation:progress-bar-stripes 1s linear infinite}
@keyframes progress-bar-stripes{0%{background-position:1rem 0}
    100%{background-position:0 0}
}.volume-indicator{width:100%;height:24px;background:var(--bg-secondary);border-radius:var(--radius-sm);overflow:hidden;position:relative}
.volume-level{height:100%;background:linear-gradient(90deg,var(--success-color),var(--warning-color),var(--danger-color));border-radius:var(--radius-sm);transition:width 0.1s ease}
.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;line-height:1}
.badge-primary{background:rgba(24,144,255,0.1);color:var(--primary-color)}
.badge-success{background:rgba(82,196,26,0.1);color:var(--success-color)}
.badge-warning{background:rgba(250,173,20,0.1);color:var(--warning-color)}
.badge-danger{background:rgba(255,77,79,0.1);color:var(--danger-color)}
.badge-dot{padding-left:20px;position:relative}
.badge-dot::before{content:'';position:absolute;left:8px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:currentColor}
.question-navigator{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:var(--spacing-sm);padding:var(--spacing-md)}
.question-nav-item{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px solid var(--border-color);border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:all 0.3s ease;background:var(--bg-primary);position:relative}
.question-nav-item:hover{border-color:var(--primary-color);transform:scale(1.1);box-shadow:var(--shadow-sm);z-index:1}
.question-nav-item.answered{background:var(--success-color);color:#fff;border-color:var(--success-color)}
.question-nav-item.current{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(24,144,255,0.2)}
.question-nav-item.unanswered{background:var(--bg-secondary);color:var(--text-secondary)}
.countdown{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);font-weight:600;font-size:18px;transition:all 0.3s ease}
.countdown.warning{background:rgba(250,173,20,0.1);color:var(--warning-color);animation:pulse 2s ease-in-out infinite}
.countdown.danger{background:rgba(255,77,79,0.1);color:var(--danger-color);animation:pulse 1s ease-in-out infinite}
.tabs{display:flex;border-bottom:2px solid var(--border-light);margin-bottom:var(--spacing-lg)}
.tab-item{padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;transition:all 0.3s ease;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--text-secondary);font-weight:500;position:relative}
.tab-item:hover{color:var(--primary-color);background:rgba(24,144,255,0.05)}
.tab-item.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}
.tab-content{animation:fadeIn 0.3s ease-in}
.list-group{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}
.list-item{padding:var(--spacing-md);background:var(--bg-primary);border-bottom:1px solid var(--border-light);transition:all 0.3s ease}
.list-item:last-child{border-bottom:none}
.list-item:hover{background:var(--bg-secondary);padding-left:calc(var(--spacing-md) + 4px)}
.list-item.interactive{cursor:pointer}
.list-item.interactive:active{background:rgba(24,144,255,0.05)}
.divider{height:1px;background:var(--border-light);margin:var(--spacing-lg) 0}
.divider-text{display:flex;align-items:center;text-align:center;margin:var(--spacing-lg) 0;color:var(--text-secondary);font-size:14px}
.divider-text::before,.divider-text::after{content:'';flex:1;height:1px;background:var(--border-light)}
.divider-text::before{margin-right:var(--spacing-md)}
.divider-text::after{margin-left:var(--spacing-md)}
.tooltip{position:relative;display:inline-block}
.tooltip-text{visibility:hidden;opacity:0;position:absolute;bottom:125%;left:50%;transform:translateX(-50%);background:rgba(0,0,0,0.8);color:#fff;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:12px;white-space:nowrap;z-index:1000;transition:all 0.3s ease}
.tooltip-text::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:rgba(0,0,0,0.8)}
.tooltip:hover .tooltip-text{visibility:visible;opacity:1;bottom:130%}
.empty-state{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--text-secondary)}
.empty-state-icon{font-size:48px;margin-bottom:var(--spacing-md);opacity:0.5}
.empty-state-text{font-size:16px;margin-bottom:var(--spacing-sm)}
.empty-state-description{font-size:14px;color:var(--text-disabled)}
.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-disabled) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}
@keyframes skeleton-loading{0%{background-position:200% 0}
    100%{background-position:-200% 0}
}.skeleton-text{height:16px;margin-bottom:var(--spacing-sm)}
.skeleton-title{height:24px;width:60%;margin-bottom:var(--spacing-md)}
.skeleton-avatar{width:48px;height:48px;border-radius:50%}
.skeleton-button{height:40px;width:120px}
.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}
*:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}
}@media (prefers-contrast:high){:root{--border-color:#000;--text-secondary:#000}
    .btn{border-width:2px}
}@media print{.navbar,.btn,.video-container,.modal-overlay,.loading-overlay,.message{display:none !important}
    body{background:#fff}
    .card{box-shadow:none;border:1px solid #000}
}body{animation:pageEnter 0.5s ease-out}
@keyframes pageEnter{from{opacity:0;transform:translateY(20px)}
    to{opacity:1;transform:translateY(0)}
}.page-loading-bar{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--primary-color);transform-origin:left;animation:loadingBar 2s ease-out forwards;z-index:10001}
@keyframes loadingBar{0%{transform:scaleX(0)}
    50%{transform:scaleX(0.7)}
    100%{transform:scaleX(1);opacity:0}
}.page-loading{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:10000;animation:fadeOut 0.5s ease-out 0.5s forwards}
.page-loading-spinner{width:50px;height:50px;border:4px solid var(--border-light);border-top-color:var(--primary-color);border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:var(--spacing-md)}
.page-loading-text{color:var(--text-secondary);font-size:14px;animation:pulse 2s ease-in-out infinite}
.fade-in-content{animation:fadeInContent 0.6s ease-out}
@keyframes fadeInContent{from{opacity:0;transform:translateY(30px)}
    to{opacity:1;transform:translateY(0)}
}.card-stagger{animation:cardStagger 0.5s ease-out backwards}
.card-stagger:nth-child(1){animation-delay:0.1s}
.card-stagger:nth-child(2){animation-delay:0.2s}
.card-stagger:nth-child(3){animation-delay:0.3s}
.card-stagger:nth-child(4){animation-delay:0.4s}
.card-stagger:nth-child(5){animation-delay:0.5s}
@keyframes cardStagger{from{opacity:0;transform:translateY(20px) scale(0.95)}
    to{opacity:1;transform:translateY(0) scale(1)}
}.btn-ripple{position:relative;overflow:hidden}
.btn-ripple::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,0.5);transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}
.btn-ripple:active::after{width:300px;height:300px}
.form-input-animated{position:relative}
.form-input-animated::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--primary-color);transition:all 0.3s ease;transform:translateX(-50%)}
.form-input-animated:focus::after{width:100%}
.success-checkmark{width:80px;height:80px;margin:0 auto;border-radius:50%;display:block;stroke-width:3;stroke:var(--success-color);stroke-miterlimit:10;box-shadow:inset 0 0 0 var(--success-color);animation:fillSuccess 0.4s ease-in-out 0.4s forwards,scaleSuccess 0.3s ease-in-out 0.9s both}
@keyframes fillSuccess{100%{box-shadow:inset 0 0 0 50px var(--success-color)}
}@keyframes scaleSuccess{0%,100%{transform:none}
     50%{transform:scale3d(1.1,1.1,1)}
 }.error-shake{animation:errorShake 0.5s ease-in-out}
@keyframes errorShake{0%,100%{transform:translateX(0)}
    10%,30%,50%,70%,90%{transform:translateX(-10px)}
    20%,40%,60%,80%{transform:translateX(10px)}
}.skeleton-enhanced{background:linear-gradient(
        90deg,var(--bg-secondary) 0%,var(--bg-disabled) 20%,var(--bg-secondary) 40%,var(--bg-secondary) 100%
);background-size:200% 100%;animation:skeletonEnhanced 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}
@keyframes skeletonEnhanced{0%{background-position:200% 0}
    100%{background-position:-200% 0}
}.notification-slide-in{animation:notificationSlideIn 0.4s cubic-bezier(0.68,-0.55,0.265,1.55)}
@keyframes notificationSlideIn{from{transform:translateX(-50%) translateY(-100px);opacity:0}
    to{transform:translateX(-50%) translateY(0);opacity:1}
}.modal-bounce-in{animation:modalBounceIn 0.5s cubic-bezier(0.68,-0.55,0.265,1.55)}
@keyframes modalBounceIn{0%{transform:scale(0.3);opacity:0}
    50%{transform:scale(1.05)}
    70%{transform:scale(0.9)}
    100%{transform:scale(1);opacity:1}
}.video-loading{position:relative}
.video-loading::before{content:'';position:absolute;top:50%;left:50%;width:60px;height:60px;margin:-30px 0 0 -30px;border:4px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin 0.8s linear infinite;z-index:1}
.progress-animated .progress-bar-fill{animation:progressGrow 1.5s ease-out}
@keyframes progressGrow{from{width:0}
}.countdown-blink{animation:countdownBlink 1s ease-in-out infinite}
@keyframes countdownBlink{0%,100%{opacity:1;transform:scale(1)}
    50%{opacity:0.7;transform:scale(1.05)}
}.question-transition-enter{animation:questionEnter 0.4s ease-out}
@keyframes questionEnter{from{opacity:0;transform:translateX(30px)}
    to{opacity:1;transform:translateX(0)}
}.question-transition-exit{animation:questionExit 0.3s ease-in}
@keyframes questionExit{from{opacity:1;transform:translateX(0)}
    to{opacity:0;transform:translateX(-30px)}
}.float-animation{animation:floatAnimation 3s ease-in-out infinite}
@keyframes floatAnimation{0%,100%{transform:translateY(0)}
    50%{transform:translateY(-10px)}
}.spin-slow{animation:spin 2s linear infinite}
.spin-fast{animation:spin 0.5s linear infinite}
.gradient-animation{background:linear-gradient(270deg,var(--primary-color),var(--primary-hover),var(--primary-active));background-size:600% 600%;animation:gradientShift 8s ease infinite}
@keyframes gradientShift{0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}.focus-highlight{position:relative}
.focus-highlight:focus::before{content:'';position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border:2px solid var(--primary-color);border-radius:inherit;animation:focusPulse 1.5s ease-out infinite}
@keyframes focusPulse{0%{box-shadow:0 0 0 0 rgba(24,144,255,0.7)}
    70%{box-shadow:0 0 0 10px rgba(24,144,255,0)}
    100%{box-shadow:0 0 0 0 rgba(24,144,255,0)}
}html{scroll-behavior:smooth}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-sm)}
::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-sm);transition:background 0.3s ease}
::-webkit-scrollbar-thumb:hover{background:var(--text-disabled)}
*{scrollbar-width:thin;scrollbar-color:var(--border-color) var(--bg-secondary)}
::selection{background:rgba(24,144,255,0.2);color:var(--text-primary)}
::-moz-selection{background:rgba(24,144,255,0.2);color:var(--text-primary)}
.ss-hide{display:none}
.ss-bold{font-weight:bold}
.footer{background:var(--bg-primary);padding:var(--spacing-lg) 0;text-align:center;color:var(--text-secondary);font-size:14px;border-top:1px solid var(--border-light)}