:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color-scheme:light;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--text-primary: #0f172a;--text-secondary: #64748b;--border-color: #e2e8f0;--border-hover: #cbd5e1;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #eff6ff;--accent-primary: #2563eb;--accent-secondary: #1d4ed8;--accent-glow: rgba(37, 99, 235, .25);--success-color: #16a34a;--warning-color: #f59e0b;--danger-color: #dc2626;--info-color: #0284c7;--highlight-bg: #fff3cd;--highlight-hover: #fff3cd;--note-highlight-bg: #eff6ff;--note-hover: #eff6ff}[data-theme=dark]{color-scheme:dark;--bg-primary: #1e293b;--bg-secondary: #0f172a;--bg-tertiary: #1e293b;--bg-card: #1e293b;--text-primary: #f8fafc;--text-secondary: #94a3b8;--border-color: #334155;--border-hover: #475569;--primary: #3b82f6;--primary-hover: #2563eb;--primary-light: rgba(59, 130, 246, .15);--accent-primary: #3b82f6;--accent-secondary: #2563eb;--accent-glow: rgba(59, 130, 246, .35);--success-color: #22c55e;--warning-color: #f59e0b;--danger-color: #ef4444;--info-color: #38bdf8;--highlight-bg: #8b7033;--highlight-hover: #8b7033;--note-highlight-bg: #1e3a8a;--note-hover: #1e3a8a}[data-ielts-theme=standard],body.ielts-theme-standard{--bg-primary: #ffffff;--bg-secondary: #f4f6f8;--bg-tertiary: #e5e9ec;--text-primary: #000000;--text-secondary: #333333;--border-color: #cccccc;--accent-primary: #0066cc;--accent-secondary: #004c99;--highlight-bg: #fff59d}[data-ielts-theme=inverted],body.ielts-theme-inverted{--bg-primary: #000000;--bg-secondary: #121212;--bg-tertiary: #1e1e1e;--text-primary: #ffffff;--text-secondary: #cccccc;--border-color: #444444;--accent-primary: #66b2ff;--accent-secondary: #3399ff;--highlight-bg: #4a4000}[data-ielts-theme=high-contrast],body.ielts-theme-high-contrast{--bg-primary: #000000;--bg-secondary: #0a0a0a;--bg-tertiary: #141414;--text-primary: #ffff00;--text-secondary: #e6e600;--border-color: #ffff00;--accent-primary: #00ffff;--accent-secondary: #00cccc;--highlight-bg: #555500}[data-ielts-theme=blue],body.ielts-theme-blue{--bg-primary: #d0e8ff;--bg-secondary: #bdddfa;--bg-tertiary: #abd2f5;--text-primary: #001f54;--text-secondary: #0a3173;--border-color: #85b8e8;--accent-primary: #003366;--accent-secondary: #002244;--highlight-bg: #fff3a8}body{margin:0;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.login-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.login-modal{background:var(--bg-primary);border-radius:16px;padding:40px;width:90%;max-width:440px;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideUp .3s ease;border:1px solid var(--border-color)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:32px;color:var(--text-secondary);cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease}.login-close:hover{background:var(--bg-hover);color:var(--text-primary)}.login-header{text-align:center;margin-bottom:32px}.login-header h2{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.login-header p{font-size:15px;color:var(--text-secondary);margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:12px 16px;border-radius:8px;font-size:14px;text-align:center}.login-session-notice{background:#ffc10726;border:1px solid rgba(255,193,7,.4);color:#b45309;padding:12px 16px;border-radius:8px;font-size:14px;text-align:center;font-weight:500;line-height:1.4}[data-theme=dark] .login-session-notice{color:#fbbf24;background:#ffc1071f;border-color:#ffc1074d}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:var(--text-primary)}.form-group input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:12px 16px;font-size:15px;color:var(--text-primary);transition:all .2s ease;font-family:inherit}.form-group input::placeholder{color:var(--text-secondary)}.form-group input:focus{outline:none;border-color:var(--accent-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.login-submit-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;padding:14px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px}.login-submit-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.login-submit-btn:active{transform:translateY(0)}[data-theme=dark] .login-modal{background:var(--bg-primary);box-shadow:0 20px 60px #00000080}@media(max-width:768px){.login-modal{padding:32px 24px;width:95%}.login-header h2{font-size:24px}.login-header p{font-size:14px}}.navbar{position:fixed;top:0;left:0;width:100vw;max-width:100%;height:72px;background:var(--bg-primary);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:16px 32px;box-shadow:0 1px 3px #0000001a;z-index:9999;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);margin:0;box-sizing:border-box;overflow:visible}.logo{font-size:24px;font-weight:800;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;gap:8px;flex-shrink:0}.nav-links{display:flex;gap:24px;align-items:center;flex-shrink:0}.nav-link{color:var(--text-secondary);text-decoration:none;font-weight:500;padding:8px 16px;border-radius:8px;transition:all .2s ease;cursor:pointer;display:inline-flex;align-items:center}.nav-link:hover,.nav-link.active{background:var(--bg-hover);color:var(--text-primary)}.nav-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.user-status{position:relative;display:flex;align-items:center;flex-shrink:0}.join-btn{background:var(--accent-primary);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;height:40px;display:flex;align-items:center;justify-content:center}.join-btn:hover{background:var(--accent-secondary);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow, rgba(37, 99, 235, .25))}.user-profile{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:25px;cursor:pointer;transition:background .3s ease;white-space:nowrap;min-height:40px;border:1px solid transparent;position:relative}.user-profile:hover{background:var(--bg-hover);border-color:var(--border-color)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-primary, #2563eb);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.dropdown{position:absolute;top:calc(100% + 12px);right:0;background:var(--bg-primary);border-radius:12px;box-shadow:0 8px 32px #00000026;padding:8px;min-width:280px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s ease;border:1px solid var(--border-color);overflow:hidden}.dropdown.show{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{padding:12px 16px;border-radius:8px;cursor:pointer;transition:background .2s ease;color:var(--text-primary);white-space:nowrap;display:flex;align-items:center;gap:10px;font-weight:500}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-item.logout{color:#ef4444}.dropdown-mobile-nav{display:none}.dropdown-divider{height:1px;background:var(--border-color);margin:6px 0}.dropdown-user-header{display:none;padding:10px 14px;border-bottom:1px solid var(--border-color);margin-bottom:4px}.dropdown-user-name{font-weight:700;font-size:.925rem;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1024px)and (min-width:769px){.navbar{padding:12px 20px}.nav-links{gap:12px}.nav-link{padding:6px 12px;font-size:.875rem}.user-profile span{max-width:100px;overflow:hidden;text-overflow:ellipsis}}@media(max-width:768px){.navbar{padding:10px 16px;height:64px}.nav-links,.user-profile span{display:none}.user-profile{padding:4px;min-height:auto}.dropdown{width:240px;max-width:calc(100vw - 24px);right:0}.dropdown-mobile-nav{display:flex;flex-direction:column}.dropdown-user-header{display:block}}.unified-loading-wrap{display:flex;justify-content:center;align-items:center;width:100%;box-sizing:border-box}.unified-loading-wrap.fullscreen{min-height:calc(100vh - 120px);padding:40px 20px}.unified-loading-wrap.inline{padding:48px 20px}.unified-loading-card{text-align:center;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;padding:44px 36px;max-width:440px;width:100%;box-shadow:0 4px 20px #0000000d;animation:unifiedLoadingFadeIn .25s ease-out}@keyframes unifiedLoadingFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.unified-pulse-rings{position:relative;width:68px;height:68px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center}.unified-pulse-rings:before,.unified-pulse-rings:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent-primary, #2563eb);opacity:.3;animation:unifiedPulseRing 1.8s cubic-bezier(.25,.46,.45,.94) infinite}.unified-pulse-rings:after{animation-delay:.6s}@keyframes unifiedPulseRing{0%{transform:scale(.65);opacity:.8}to{transform:scale(1.6);opacity:0}}.unified-loading-icon{font-size:2rem;color:var(--accent-primary, #2563eb);z-index:2;display:flex;align-items:center;justify-content:center}.unified-loading-spinner{width:32px;height:32px;border:3px solid var(--border-color, #e2e8f0);border-top-color:var(--accent-primary, #2563eb);border-radius:50%;animation:unifiedSpinnerRotate .8s linear infinite;z-index:2;display:block}@keyframes unifiedSpinnerRotate{to{transform:rotate(360deg)}}.unified-loading-title{font-size:1.25rem;font-weight:700;color:var(--text-primary, #0f172a);margin:0 0 8px;letter-spacing:-.01em}.unified-loading-desc{font-size:.9rem;color:var(--text-secondary, #64748b);margin:0;line-height:1.5}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root,[data-theme=light]{color-scheme:light;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-hover: #f1f5f9;--bg-card: #ffffff;--text-primary: #0f172a;--text-secondary: #64748b;--border-color: #e2e8f0;--border-hover: #cbd5e1;--cta-bg: #f8fafc;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #eff6ff;--accent-primary: #2563eb;--accent-secondary: #1d4ed8;--accent-glow: rgba(37, 99, 235, .25)}[data-theme=dark]{color-scheme:dark;--bg-primary: #1e293b;--bg-secondary: #0f172a;--bg-hover: #334155;--bg-card: #1e293b;--text-primary: #f8fafc;--text-secondary: #94a3b8;--border-color: #334155;--border-hover: #475569;--cta-bg: #0f172a;--primary: #3b82f6;--primary-hover: #2563eb;--primary-light: rgba(59, 130, 246, .15);--accent-primary: #3b82f6;--accent-secondary: #2563eb;--accent-glow: rgba(59, 130, 246, .35)}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;min-height:100vh;background:var(--bg-secondary);color:var(--text-primary);overflow-y:auto;overflow-x:hidden;width:100%}html.theme-transitioning,html.theme-transitioning body,html.theme-transitioning .navbar,html.theme-transitioning .main-content,html.theme-transitioning *{transition:background-color .3s ease,color .3s ease,border-color .3s ease!important}body.scrolling::-webkit-scrollbar-thumb{opacity:1}body:not(.scrolling)::-webkit-scrollbar-thumb{opacity:0;transition:opacity .5s ease 1s}.app{min-height:100vh}.main-content{padding-top:72px;min-height:100vh}@media(max-width:768px){.main-content{padding-top:64px}}body.immersive-mode .main-content,.main-content:has(.assignment-player-layout),.main-content:has(.test-interface),.main-content:has(.test-page-state),.main-content:has(.assessment-mobile-warning-overlay){padding-top:0}.route-loading{display:flex;min-height:calc(100vh - 72px);align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);font-size:.95rem}.route-loading-spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:route-loading-spin .8s linear infinite}@keyframes route-loading-spin{to{transform:rotate(360deg)}}button{font-family:inherit;cursor:pointer;transition:all .2s ease}button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}a{font-weight:500;text-decoration:inherit}html{overflow-y:auto;scrollbar-width:none}::-webkit-scrollbar{display:none}.page-header-wrapper{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.page-header-content{flex:1}.page-title{font-size:2.5rem;font-weight:700;color:var(--accent-primary);margin-bottom:.5rem;text-align:left;letter-spacing:-.02em}.page-subtitle{font-size:1.1rem;color:var(--text-secondary);line-height:1.5;text-align:left;margin:0}.page-header-actions{display:flex;align-items:center;gap:1rem;margin-left:2rem;margin-top:.5rem}@media(max-width:768px){.page-header-wrapper{flex-direction:column;gap:1rem}.page-header-actions{margin-left:0;width:100%;justify-content:flex-start}}.catalog-page-container{max-width:1360px;margin:0 auto;padding:24px 20px 60px;box-sizing:border-box}.catalog-layout-split{display:grid;grid-template-columns:280px 1fr;gap:32px;align-items:flex-start;margin-top:8px}.catalog-sidebar{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:14px;padding:22px;box-shadow:0 1px 3px #0000000a;position:sticky;top:92px;display:flex;flex-direction:column;gap:22px;box-sizing:border-box}.catalog-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.catalog-sidebar-title{font-size:1rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px;margin:0}.catalog-sidebar-reset{background:none;border:none;color:var(--accent-primary);font-size:.8125rem;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .15s ease}.catalog-sidebar-reset:hover{background:var(--primary-light, rgba(37, 99, 235, .1))}.catalog-sidebar-section{display:flex;flex-direction:column;gap:10px}.catalog-sidebar-heading{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:0;display:flex;align-items:center;gap:6px}.catalog-sidebar-section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.catalog-sidebar-search{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;transition:border-color .2s ease,box-shadow .2s ease}.catalog-sidebar-search:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow, rgba(37, 99, 235, .15));background:var(--bg-primary)}.catalog-sidebar-search .search-icon{color:var(--text-secondary);font-size:.875rem;flex-shrink:0}.catalog-sidebar-search input{border:none;background:transparent;color:var(--text-primary);font-size:.875rem;width:100%;outline:none}.catalog-sidebar-search input::placeholder{color:var(--text-secondary);opacity:.7}.catalog-sidebar-options{display:flex;flex-direction:column;gap:4px}.catalog-sidebar-opt{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;border-radius:8px;background:transparent;border:1px solid transparent;color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:left}.catalog-sidebar-opt:hover{background:var(--bg-hover, var(--bg-tertiary));color:var(--text-primary)}.catalog-sidebar-opt.active{background:var(--primary-light, rgba(37, 99, 235, .1));color:var(--accent-primary);font-weight:600;border-color:#2563eb33}.catalog-sidebar-badge{font-size:.75rem;font-weight:600;padding:2px 7px;border-radius:10px;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);line-height:1.2}.catalog-sidebar-opt.active .catalog-sidebar-badge{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.catalog-sidebar-action-box{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px;text-align:center}.catalog-sidebar-action-box p{font-size:.8125rem;color:var(--text-secondary);margin:0;line-height:1.4}.catalog-content-main{display:flex;flex-direction:column;gap:20px;min-width:0}.catalog-results-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:2px 0 6px}.catalog-results-count{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.catalog-results-count strong{color:var(--accent-primary)}.catalog-results-count span{font-weight:400;color:var(--text-secondary)}.catalog-results-sort{display:flex;align-items:center;gap:8px}.catalog-results-sort label{font-size:.8125rem;font-weight:600;color:var(--text-secondary)}@media(max-width:960px){.catalog-layout-split{grid-template-columns:1fr;gap:20px}.catalog-sidebar{position:static}.catalog-sidebar-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px}}.catalog-filters-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;padding:16px 20px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 1px 3px #0000000a}.catalog-filter-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.catalog-filter-label{font-size:.875rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.catalog-filter-chips{display:flex;gap:8px;flex-wrap:wrap}.catalog-filter-chip{padding:6px 14px;border-radius:20px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease;line-height:1.3}.catalog-filter-chip:hover{background:var(--bg-hover, var(--bg-tertiary));color:var(--text-primary);border-color:var(--border-hover, var(--accent-primary))}.catalog-filter-chip.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 2px 8px var(--accent-glow, rgba(37, 99, 235, .25));font-weight:600}.catalog-search-wrapper{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;width:240px;transition:border-color .2s ease,box-shadow .2s ease}.catalog-search-wrapper:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow, rgba(37, 99, 235, .15));background:var(--bg-primary)}.catalog-search-icon{color:var(--text-secondary);font-size:.875rem;flex-shrink:0}.catalog-search-input{border:none;background:transparent;color:var(--text-primary);font-size:.875rem;width:100%;outline:none}.catalog-search-input::placeholder{color:var(--text-secondary);opacity:.7}.catalog-sort-select{padding:8px 36px 8px 14px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%236C757D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px;transition:border-color .15s ease;min-width:140px}.catalog-sort-select:focus{outline:none;border-color:var(--accent-primary)}[data-theme=dark] .catalog-sort-select{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%23ADB5BD' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.catalog-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:22px}.catalog-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:14px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 2px 6px #0000000a;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.catalog-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #00000014;border-color:var(--border-hover, var(--border-color))}.catalog-card.locked{border-color:var(--border-color)}.catalog-card-top{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.catalog-tag{font-size:.75rem;font-weight:700;padding:3px 9px;border-radius:6px;letter-spacing:.02em;display:inline-flex;align-items:center;gap:4px;text-transform:uppercase}.catalog-tag.tag-primary{background:var(--primary-light, rgba(37, 99, 235, .12));color:var(--accent-primary);border:1px solid rgba(37,99,235,.25)}.catalog-tag.tag-neutral{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.catalog-tag.tag-success{background:#28a7451f;color:#16a34a;border:1px solid rgba(40,167,69,.25)}.catalog-tag.tag-warning{background:#d977061f;color:#d97706;border:1px solid rgba(217,119,6,.25)}.catalog-tag.tag-danger{background:#dc26261f;color:#dc2626;border:1px solid rgba(220,38,38,.25)}.catalog-tag.tag-info{background:#0284c71f;color:#0284c7;border:1px solid rgba(2,132,199,.25)}.catalog-card-title{margin:0 0 10px;font-size:1.15rem;font-weight:700;color:var(--text-primary);line-height:1.4}.catalog-card-desc{font-size:.875rem;color:var(--text-secondary);line-height:1.5;margin:0 0 18px;flex-grow:1}.catalog-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;color:var(--text-secondary);padding:12px 0;border-top:1px solid var(--border-color);margin-bottom:16px;flex-wrap:wrap;gap:8px}.catalog-meta-item{display:flex;align-items:center;gap:6px}.catalog-card-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .15s ease;text-decoration:none}.catalog-card-btn:hover:not(:disabled){background:var(--accent-secondary);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow, rgba(37, 99, 235, .25))}.catalog-card-btn.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.catalog-card-btn.btn-secondary:hover:not(:disabled){background:var(--bg-hover, var(--bg-tertiary))}.catalog-card-btn.btn-warning{background:#d97706}.catalog-card-btn.btn-warning:hover:not(:disabled){background:#b45309}.catalog-card-btn.btn-success{background:#16a34a;cursor:default}.catalog-card-btn:disabled,.catalog-card-btn.btn-disabled{background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border:1px solid var(--border-color)!important;cursor:not-allowed;opacity:.8;transform:none!important}.catalog-loading-wrap{display:flex;justify-content:center;align-items:center;padding:60px 20px}.catalog-loading-card{text-align:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;padding:48px 40px;max-width:440px;width:100%;box-shadow:0 4px 16px #0000000d}.catalog-pulse-rings{position:relative;width:64px;height:64px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center}.catalog-pulse-rings:before,.catalog-pulse-rings:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent-primary);opacity:.3;animation:catalogPulseRing 1.8s cubic-bezier(.25,.46,.45,.94) infinite}.catalog-pulse-rings:after{animation-delay:.6s}@keyframes catalogPulseRing{0%{transform:scale(.6);opacity:.8}to{transform:scale(1.6);opacity:0}}.catalog-loading-icon{font-size:2rem;color:var(--accent-primary);z-index:2}.catalog-loading-card h2{font-size:1.35rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.catalog-loading-card p{font-size:.9rem;color:var(--text-secondary);margin:0;line-height:1.45}.catalog-empty-wrap{text-align:center;padding:60px 24px;background:var(--bg-primary);border:2px dashed var(--border-color);border-radius:14px}.catalog-empty-icon{font-size:3rem;color:var(--text-secondary);opacity:.5;margin-bottom:16px}.catalog-empty-wrap h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 8px}.catalog-empty-wrap p{font-size:.925rem;color:var(--text-secondary);margin:0 0 20px}.catalog-error-wrap{display:flex;justify-content:center;padding:60px 20px}.catalog-error-card{text-align:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;padding:40px;max-width:440px;width:100%}.catalog-error-icon{font-size:2.5rem;color:var(--danger-color, #ef4444);margin-bottom:16px}.catalog-error-card h2{font-size:1.3rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.catalog-error-card p{font-size:.9rem;color:var(--text-secondary);margin-bottom:20px}.catalog-modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.catalog-modal-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:14px;width:100%;max-width:500px;box-shadow:0 16px 36px #0003;overflow:hidden;animation:catalogModalScaleIn .2s ease-out}@keyframes catalogModalScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.catalog-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary)}.catalog-modal-title{display:flex;align-items:center;gap:10px;font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.catalog-modal-close{background:transparent;border:none;color:var(--text-secondary);font-size:1rem;cursor:pointer;display:flex;align-items:center;padding:6px;border-radius:6px}.catalog-modal-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.catalog-modal-body{padding:20px;color:var(--text-primary);font-size:.925rem}.catalog-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border-color);background-color:var(--bg-secondary)}.catalog-btn{padding:9px 18px;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:8px;transition:all .15s ease}.catalog-btn.primary{background:var(--accent-primary);color:#fff}.catalog-btn.primary:hover:not(:disabled){background:var(--accent-secondary)}.catalog-btn.secondary{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color)}.catalog-btn.secondary:hover:not(:disabled){background:var(--bg-tertiary)}.catalog-btn.danger{background:var(--danger-color, #ef4444);color:#fff}.catalog-btn.danger:hover:not(:disabled){background:#dc2626}.catalog-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1024px)and (min-width:769px){.catalog-cards-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.catalog-page-container{padding:16px 14px 48px}.catalog-layout-split{gap:16px;margin-top:4px}.catalog-filters-bar{flex-direction:column;align-items:stretch}.catalog-search-wrapper{width:100%}.catalog-cards-grid{grid-template-columns:1fr;gap:14px}.catalog-card{padding:18px 16px}.catalog-btn{min-height:42px}}.courses-form-group{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}.courses-form-group label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.courses-form-input,.courses-form-textarea{width:100%;padding:10px 14px;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.courses-form-input:focus,.courses-form-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow, rgba(37, 99, 235, .15));background-color:var(--bg-primary)}.courses-form-textarea{min-height:84px;resize:vertical}.courses-modal-hint{font-size:.875rem;color:var(--text-secondary);line-height:1.5;margin-bottom:18px}.course-detail-container{max-width:1200px;margin:0 auto;padding:24px 20px 80px;box-sizing:border-box}.page-header-area{display:flex;flex-direction:column;gap:20px;margin-bottom:28px}.page-main-area{display:flex;flex-direction:column}.course-back-link{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:500;color:var(--primary, #2563eb);text-decoration:none;background:transparent;border:none;padding:0;margin-bottom:8px;cursor:pointer;transition:color .15s ease;align-self:flex-start}.course-back-link:hover{text-decoration:underline;color:var(--primary-hover, #1d4ed8)}.course-detail-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:0;flex-wrap:wrap}.topbar-left{display:flex;flex-direction:column;gap:4px}.topbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.course-detail-topbar .title-group h1{font-size:1.5rem;font-weight:700;color:var(--text-primary, #0f172a);margin:0 0 8px;line-height:1.3}.course-detail-topbar .badge-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.course-code-badge{display:inline-flex;align-items:center;font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:12px;background-color:var(--primary-light, rgba(37, 99, 235, .1));color:var(--accent-primary, #2563eb);border:1px solid rgba(37,99,235,.2);letter-spacing:.04em;text-transform:uppercase}.course-access-pill{font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:12px;display:inline-flex;align-items:center;gap:5px}.course-access-pill.enrolled{background:#28a74514;color:var(--success-color, #15803d);border:1px solid rgba(40,167,69,.2)}.course-access-pill.locked{background:#dc354514;color:#b91c1c;border:1px solid rgba(220,53,69,.2)}.course-meta-pill{font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:12px;display:inline-flex;align-items:center;gap:5px;background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #cbd5e1);color:var(--text-secondary, #475569)}.course-edit-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;border:1px solid var(--border-color, #e2e8f0);background-color:var(--bg-primary, #ffffff);color:var(--text-primary, #0f172a);transition:all .15s ease}.course-edit-btn:hover{background-color:var(--bg-secondary, #f8fafc);border-color:var(--border-hover, #cbd5e1);color:var(--primary, #2563eb)}.course-edit-btn.active{background:var(--primary, #2563eb);border-color:var(--primary, #2563eb);color:#fff}.course-edit-btn.active:hover{background:var(--primary-hover, #1d4ed8);border-color:var(--primary-hover, #1d4ed8);color:#fff}.course-header-desc{font-size:.9375rem;color:var(--text-secondary, #64748b);margin:0;line-height:1.5;max-width:800px}.course-summary-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media(max-width:900px){.course-summary-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.course-summary-kpis{grid-template-columns:1fr}}.course-summary-kpis .kpi-card{background-color:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 3px #0000000a;transition:transform .15s ease,box-shadow .15s ease}.course-summary-kpis .kpi-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.course-summary-kpis .kpi-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #64748b)}.course-summary-kpis .kpi-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #0f172a);line-height:1.2}.course-summary-kpis .kpi-sub{font-size:.8125rem;color:var(--text-secondary, #64748b);margin-top:2px}.course-editor-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.course-editor-heading h2{margin-bottom:4px}.course-editor-heading p{margin:0 0 20px;color:var(--text-secondary, #64748b);font-size:13px;line-height:1.45}.course-editor-close{border:0;background:transparent;color:var(--text-secondary, #64748b);cursor:pointer;padding:4px;font-size:16px}.course-archive-control{display:flex;gap:8px;align-items:center;margin:16px 0;font-size:13px;color:var(--text-secondary, #64748b)}.course-locked-gate{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:48px 32px;text-align:center;max-width:540px;margin:32px auto;box-shadow:0 4px 16px #0000000d}.course-locked-icon-wrapper{width:64px;height:64px;border-radius:50%;background:#d977061f;color:#d97706;display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.course-locked-gate h2{font-size:20px;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 10px}.course-locked-gate p{color:var(--text-secondary, #64748b);font-size:14px;line-height:1.5;margin:0 0 24px}.course-locked-form{display:flex;gap:10px;justify-content:center;max-width:420px;margin:0 auto}.course-locked-input{flex:1;padding:10px 14px;border:1px solid var(--border-color, #cbd5e1);border-radius:8px;font-size:14px;font-weight:600;letter-spacing:.5px;background:var(--bg-secondary, #ffffff);color:var(--text-primary, #1e293b);outline:none;transition:border-color .15s ease}.course-locked-input:focus{border-color:var(--accent-primary, #2563eb)}.course-tabs{display:inline-flex;background:var(--bg-subtle, #f1f5f9);padding:4px;border-radius:10px;border:1px solid var(--border-color, #e2e8f0);margin-bottom:24px;max-width:100%;overflow-x:auto}.course-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border:none;border-radius:7px;background:transparent;color:var(--text-secondary, #64748b);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s ease;line-height:1.2;white-space:nowrap}.course-tab-btn:hover:not(.active){color:var(--text-primary, #0f172a);background:#0000000a}.course-tab-btn.active{background:#fff;color:#0f172a;box-shadow:0 1px 4px #0000001a}[data-theme=dark] .course-tabs{background:#0f172a;border-color:#334155}[data-theme=dark] .course-tab-btn:hover:not(.active){color:#f8fafc;background:#ffffff0d}[data-theme=dark] .course-tab-btn.active{background:#1e293b;color:#f8fafc;box-shadow:0 1px 4px #0000004d}[data-theme=dark] .course-code-badge{background:#3b82f626;color:var(--accent-primary, #3b82f6);border-color:#3b82f64d}[data-theme=dark] .course-meta-pill{background:var(--bg-card, #1e293b);border-color:var(--border-color, #334155);color:var(--text-secondary, #94a3b8)}[data-theme=dark] .course-edit-btn{background:var(--bg-card, #1e293b);border-color:var(--border-color, #334155);color:var(--text-primary, #f8fafc)}[data-theme=dark] .course-edit-btn:hover{background:var(--bg-hover, #334155);color:var(--accent-primary, #3b82f6)}[data-theme=dark] .course-summary-kpis .kpi-card{background:var(--bg-card, #1e293b);border-color:var(--border-color, #334155)}[data-theme=dark] .course-summary-kpis .kpi-value{color:var(--text-primary, #f8fafc)}.course-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.course-section-title{font-size:1.125rem;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 4px}.course-section-subtitle{font-size:.8125rem;color:var(--text-secondary, #64748b);margin:0}.course-empty-state{text-align:center;padding:48px 24px;background:var(--bg-primary, #ffffff);border-radius:12px;border:1px dashed var(--border-color, #cbd5e1);color:var(--text-secondary, #64748b);margin-bottom:24px}.course-empty-state h4{margin:12px 0 6px;font-size:16px;font-weight:600;color:var(--text-primary, #1e293b)}.course-empty-state p{margin:0 0 18px;font-size:13px;color:var(--text-secondary, #64748b);max-width:440px;margin-inline:auto}.course-tasks-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:start}.course-deadline-filter{position:sticky;top:16px;background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;padding:12px;box-shadow:0 2px 8px #0000000a}.course-deadline-filter-label{margin:4px 8px 10px;color:var(--text-secondary, #64748b);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.course-deadline-filter-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary, #64748b);cursor:pointer;font:inherit;font-size:13px;font-weight:600;padding:9px 8px;text-align:left;transition:all .15s ease}.course-deadline-filter-btn:hover{background:var(--bg-secondary, #f8fafc);color:var(--text-primary, #1e293b)}.course-deadline-filter-btn.active{background:var(--primary-light, rgba(37, 99, 235, .12));color:var(--accent-primary, #2563eb)}.course-deadline-filter-count{min-width:22px;padding:2px 6px;border-radius:10px;background:var(--bg-secondary, #f1f5f9);font-size:11px;text-align:center}.course-deadline-filter-btn.active .course-deadline-filter-count{background:#2563eb2e}.course-library-attachments{margin:28px 0 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.course-deadline-pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--text-secondary, #64748b)}.course-deadline-pill.overdue{color:#b91c1c}.course-deadline-pill.due_soon{color:#b45309}.course-filter-empty-state{margin:0}.course-assessment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px;align-items:start}@media(max-width:900px){.course-assessment-grid{grid-template-columns:1fr}}.task-pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0 4px}.task-pagination-btn{min-width:32px;height:32px;padding:0 10px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:var(--bg-card, #ffffff);color:var(--text-secondary, #64748b);font-size:.875rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;line-height:1}.task-pagination-btn:hover:not(:disabled){border-color:#2563eb;color:#2563eb}.task-pagination-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}.task-pagination-btn:disabled{opacity:.35;cursor:not-allowed}@media(max-width:760px){.course-tasks-layout{grid-template-columns:1fr}.course-deadline-filter{position:static;display:flex;gap:6px;overflow-x:auto}.course-deadline-filter-label{display:none}.course-deadline-filter-btn{width:auto;flex:0 0 auto;white-space:nowrap}}.course-assessment-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;height:fit-content;box-shadow:0 2px 8px #0000000a;transition:all .2s ease}.course-assessment-card:hover{border-color:var(--accent-primary, #2563eb);box-shadow:0 6px 16px #0000000f}.course-assessment-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:8px}.course-category-tag{font-size:11px;font-weight:700;letter-spacing:.05em;padding:3px 8px;border-radius:6px}.course-category-tag.academic{background:var(--primary-light, rgba(37, 99, 235, .12));color:var(--accent-primary, #2563eb)}.course-category-tag.general{background:#28a7451a;color:#16a34a}.course-assessment-title{margin:0 0 7px;font-size:16px;font-weight:700;color:var(--text-primary, #1e293b);line-height:1.35}.course-assessment-state{display:inline-flex;align-items:center;border-radius:10px;padding:3px 8px;margin-bottom:8px;background:#fef3c7;color:#92400e;font-size:11px;font-weight:700;letter-spacing:.04em}.course-assessment-state.published{background:#dcfce7;color:#166534}.course-assessment-publish-hint{flex:1 0 100%;color:var(--text-secondary, #64748b);font-size:12px;line-height:1.4}.course-assessment-meta{margin:0 0 12px;font-size:12px;color:var(--text-secondary, #64748b);line-height:1.4}.course-assessment-card-footer{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border-color, #f1f5f9);padding-top:12px}.learner-details-toggle{padding:10px 20px;font-size:14px;border-radius:8px}.learner-assignment-card{cursor:default;justify-content:flex-start;padding:20px 24px}.learner-assignment-card.is-expanded{border-color:var(--accent-primary, #2563eb)}.learner-assignment-card-header{cursor:pointer;outline:none}.learner-assignment-card-header:focus-visible{border-radius:8px;box-shadow:0 0 0 3px #2563eb33}.learner-assignment-card-header .course-assessment-meta{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;margin:0;font-size:13px}.learner-assignment-card-header .course-assessment-meta span{display:inline-flex;align-items:center;white-space:nowrap}.learner-assignment-card-header .course-assessment-meta span:first-child{color:var(--text-secondary, #64748b);font-weight:500}.learner-assignment-card-header .course-assessment-meta span:first-child strong{margin-right:4px;color:var(--text-primary, #1e293b);font-weight:700}.learner-assignment-instructions{max-width:820px;margin:12px 0 0;color:var(--text-secondary, #64748b);font-size:14px;line-height:1.5;white-space:pre-wrap}@media(max-width:640px){.learner-assignment-card-header .course-assessment-meta{align-items:flex-start;flex-direction:column;gap:6px}}.learner-modules-section{margin:18px 0 4px}.learner-modules-hint{font-size:12px;color:var(--text-secondary, #64748b)}.learner-module-list{display:grid;gap:10px;margin-top:10px}.learner-module-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border-color, #e2e8f0);border-radius:10px;background:var(--bg-card, #fff)}.learner-module-copy{display:grid;gap:3px}.learner-module-copy strong{color:var(--text-primary, #1e293b)}.learner-module-copy span,.learner-module-result{font-size:12px;color:var(--text-secondary, #64748b)}.learner-module-start{padding:8px 16px}.learner-module-start.is-resume{background:#d97706}.learner-module-start.is-submitted{background:#e2e8f0;color:#64748b;cursor:default}.learner-modules-loading{margin:0;color:var(--text-secondary, #64748b);font-size:13px}.learner-modules-empty{margin:10px 0 0;color:var(--text-secondary, #64748b);font-size:13px}@media(max-width:640px){.learner-module-row{grid-template-columns:1fr auto}.learner-module-result{grid-column:1}.learner-module-start{grid-column:2;grid-row:1 / span 2}}.learner-module-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.learner-device-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--bg-tertiary, #f1f5f9);color:var(--text-secondary, #64748b);border:1px solid var(--border-color, #cbd5e1)}.assignment-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;transition:all .2s ease;box-shadow:0 2px 8px #0000000a}.assignment-card:hover{border-color:var(--accent-primary, #2563eb);box-shadow:0 6px 16px #0000000f}.assignment-card h3{margin:0 0 8px;font-size:16px;font-weight:700;color:var(--text-primary, #1e293b);line-height:1.35}.assignment-meta{display:flex;gap:14px;font-size:12px;color:var(--text-secondary, #64748b);align-items:center;flex-wrap:wrap;margin:0 0 16px}.assignment-meta span{display:inline-flex;align-items:center;gap:5px}.assignment-status-pill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px}.assignment-status-pill.available{background:var(--primary-light, rgba(37, 99, 235, .12));color:var(--accent-primary, #2563eb)}.assignment-status-pill.in_progress{background:#d977061f;color:#d97706}.assignment-status-pill.submitted{background:#9333ea1a;color:#7c3aed}.assignment-status-pill.graded{background:#28a7451f;color:#15803d}.assignment-status-pill.overdue{background:#dc35451f;color:#b91c1c}.assignment-status-pill.upcoming{background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #475569)}.assignment-actions-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border-color, #f1f5f9);padding-top:14px}.assignment-staff-actions{display:contents}.learner-assignment-details{flex:0 0 100%;margin-top:8px;padding-top:0;color:var(--text-secondary, #64748b);font-size:13px;line-height:1.5;display:flex;flex-direction:column;gap:10px}.learner-details-section{background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:12px 14px}.learner-details-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.learner-details-title{font-size:12px;font-weight:700;color:var(--text-primary, #1e293b);text-transform:uppercase;letter-spacing:.04em}.task-type-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--accent-light, #e0f2fe);color:var(--accent-primary, #0369a1);text-transform:uppercase}.learner-details-instructions{margin:0 0 12px;white-space:pre-wrap;color:var(--text-primary, #334155);font-size:13.5px;line-height:1.6}.learner-assignment-details-meta{display:flex;flex-wrap:wrap;gap:8px 18px;padding-top:10px;border-top:1px dashed var(--border-color, #e2e8f0);font-size:12.5px}.learner-feedback-container{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.learner-feedback-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.learner-feedback-score-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:9999px;font-weight:700;font-size:13px}.learner-feedback-score-pill.band{background:#dcfce7;color:#15803d;border:1px solid #86efac}.learner-feedback-score-pill.raw{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.learner-feedback-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:#166534}.learner-criteria-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:4px}.learner-criteria-card{background:#fff;border:1px solid #dcfce7;border-radius:6px;padding:8px 12px;display:flex;flex-direction:column;gap:4px}.criteria-card-label{font-size:11px;font-weight:600;color:var(--text-secondary, #475569);text-transform:uppercase;letter-spacing:.02em}.criteria-card-value{font-size:16px;font-weight:700;color:#15803d}.learner-educator-notes{background:#fff;border:1px solid #cbd5e1;border-left:4px solid #3b82f6;border-radius:6px;padding:12px 14px}.learner-educator-notes.subtle{border-left-color:#94a3b8;color:#64748b;font-size:12.5px}.learner-notes-header{display:flex;align-items:center;font-size:12.5px;color:#1e293b;margin-bottom:6px}.learner-notes-text{margin:0;font-size:13px;line-height:1.55;white-space:pre-wrap;color:#334155}.assignment-staff-actions{display:flex;align-items:center;gap:8px;margin-left:6px;border-left:1px solid var(--border-color, #e2e8f0);padding-left:12px}.course-assignment-delete-btn{background:transparent;border:1px solid var(--border-color, #cbd5e1);color:#dc2626;border-radius:8px;padding:6px 10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:13px;transition:all .15s ease}.course-assignment-delete-btn:hover{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}[data-theme=dark] .course-assignment-delete-btn{border-color:#475569;color:#f87171}[data-theme=dark] .course-assignment-delete-btn:hover{background:#dc262626;border-color:#ef4444}.cms-modal.course-member-callout{max-width:560px}.course-member-callout-intro{margin:-8px 0 20px;color:var(--text-secondary, #64748b);font-size:.9rem;line-height:1.5}.course-invite-callout-code{background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;padding:16px;margin-bottom:16px}.course-invite-actions{display:flex;gap:10px;flex-wrap:wrap}.course-invite-label{font-size:11px;font-weight:700;color:var(--accent-primary, #2563eb);text-transform:uppercase;letter-spacing:.5px}.course-invite-code{font-size:22px;font-weight:800;color:var(--text-primary, #1e293b);letter-spacing:1.5px;font-family:monospace;margin:4px 0}.course-invite-subtext{font-size:13px;color:var(--text-secondary, #64748b)}.course-table-card{background:var(--bg-card, #ffffff);border-radius:14px;border:1px solid var(--border-color, #e2e8f0);overflow:hidden;box-shadow:0 2px 8px #0000000a;margin-bottom:24px}.course-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.course-table thead{background:var(--bg-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0)}.course-table th{padding:12px 16px;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #64748b)}.course-table td{padding:13px 16px;border-bottom:1px solid var(--border-color, #f1f5f9);color:var(--text-primary, #1e293b);vertical-align:middle}.course-table tr:last-child td{border-bottom:none}.course-table tr:hover td{background:var(--bg-secondary, rgba(0, 0, 0, .015))}.course-member-action-cell{width:1%;white-space:nowrap;text-align:right}.course-member-delete-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #fecaca;border-radius:7px;background:#fff;color:#b91c1c;width:30px;height:30px;padding:0;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.course-member-delete-btn:hover{background:#fef2f2;border-color:#fca5a5}[data-theme=dark] .course-member-delete-btn{background:transparent;border-color:#7f1d1d;color:#fca5a5}.course-gradebook-card{background:var(--bg-card, #ffffff);border-radius:14px;border:1px solid var(--border-color, #e2e8f0);padding:24px;margin-bottom:24px;box-shadow:0 2px 8px #0000000a}.course-gradebook-card h4{margin:0 0 14px;font-size:16px;font-weight:700;color:var(--text-primary, #1e293b)}.course-loading-wrap{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:60px 20px}.course-loading-card{text-align:center;background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;padding:48px 40px;max-width:440px;width:100%;box-shadow:0 4px 20px #0000000f}.course-pulse-rings{position:relative;width:68px;height:68px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center}.course-pulse-rings:before,.course-pulse-rings:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--primary, #2563eb);opacity:.3;animation:coursePulseRing 1.8s cubic-bezier(.25,.46,.45,.94) infinite}.course-pulse-rings:after{animation-delay:.6s}@keyframes coursePulseRing{0%{transform:scale(.6);opacity:.8}to{transform:scale(1.6);opacity:0}}.course-loading-icon{font-size:28px;color:var(--primary, #2563eb);position:relative;z-index:1}.course-loading-card h2{font-size:1.25rem;font-weight:700;color:var(--text-primary, #0f172a);margin:0 0 8px}.course-loading-card p{font-size:.875rem;color:var(--text-secondary, #64748b);margin:0;line-height:1.5}.cms-modal-overlay{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:10050;padding:24px 16px;overflow-y:auto;box-sizing:border-box}.cms-modal{background:var(--card-bg, #ffffff);border-radius:14px;width:100%;max-width:520px;padding:26px 28px;box-shadow:0 25px 50px -12px #00000040,0 10px 15px -3px #0000001a;border:1px solid var(--border-color, rgba(226, 232, 240, .9));margin:auto;max-height:calc(100vh - 48px);overflow-y:auto;box-sizing:border-box}[data-theme=dark] .cms-modal{background:#1e293b;color:#f1f5f9;border-color:#334155;box-shadow:0 25px 50px -12px #00000080}.cms-checkbox-row{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;margin-top:14px!important;margin-bottom:18px!important;width:100%!important}.cms-checkbox-row input[type=checkbox]{width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;max-height:18px!important;accent-color:var(--primary, #2563eb)!important;cursor:pointer!important;margin:0!important;padding:0!important;flex-shrink:0!important;box-shadow:none!important}.cms-checkbox-row label{margin:0!important;cursor:pointer!important;font-size:.875rem!important;font-weight:500!important;color:var(--text-primary, #0f172a)!important;-webkit-user-select:none!important;user-select:none!important;line-height:1.4!important}.course-perf-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;background:var(--bg-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0)}.course-perf-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.03em}.breadcrumb-separator{color:var(--border-color, #cbd5e1)}.course-perf-close-btn{background:transparent;border:none;font-size:18px;color:var(--text-secondary, #94a3b8);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.course-perf-close-btn:hover{background:var(--border-color, #e2e8f0);color:var(--text-primary, #1e293b)}.course-perf-meta-strip{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:12px 24px;background:var(--bg-primary, #ffffff);border-bottom:1px solid var(--border-color, #e2e8f0);font-size:13px;color:var(--text-secondary, #475569)}.course-perf-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;padding:20px 24px;background:var(--bg-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0)}.course-perf-kpi-card{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.perf-kpi-label{font-size:12px;font-weight:600;color:var(--text-secondary, #64748b);display:flex;align-items:center}.perf-kpi-val{font-size:20px;font-weight:700;color:var(--text-primary, #0f172a)}.perf-kpi-sub{font-size:11.5px;color:var(--text-secondary, #94a3b8)}.course-perf-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 24px;background:var(--bg-primary, #ffffff);border-bottom:1px solid var(--border-color, #e2e8f0)}.course-perf-filters{display:flex;gap:6px;flex-wrap:wrap}.perf-filter-btn{background:transparent;border:1px solid var(--border-color, #cbd5e1);border-radius:6px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .15s ease}.perf-filter-btn:hover{background:var(--bg-secondary, #f1f5f9);color:var(--text-primary, #1e293b)}.perf-filter-btn.active{background:var(--accent-primary, #2563eb);color:#fff;border-color:var(--accent-primary, #2563eb)}.course-perf-search{position:relative;min-width:220px}.perf-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-secondary, #94a3b8);font-size:13px}.course-perf-search input{width:100%;padding:6px 10px 6px 30px;border:1px solid var(--border-color, #cbd5e1);border-radius:6px;font-size:12.5px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #0f172a)}.course-perf-table-wrapper{overflow-x:auto;flex:1;background:var(--bg-primary, #ffffff)}.course-perf-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.course-perf-table th{background:var(--bg-secondary, #f8fafc);padding:10px 18px;font-size:11.5px;font-weight:700;color:var(--text-secondary, #475569);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border-color, #e2e8f0)}.course-perf-table td{padding:12px 18px;border-bottom:1px solid var(--border-color, #e2e8f0);vertical-align:middle}.course-perf-table tr:hover td{background:var(--bg-secondary, #f8fafc)}.perf-status-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11.5px;font-weight:600}.perf-status-badge.graded{background:#dcfce7;color:#15803d}.perf-status-badge.pending{background:#fef3c7;color:#b45309}.perf-status-badge.missing{background:#f1f5f9;color:#64748b}.perf-late-tag{display:inline-block;margin-top:2px;font-size:10.5px;font-weight:700;color:#b91c1c;background:#fee2e2;padding:1px 5px;border-radius:4px}.perf-review-btn{font-size:12px!important;padding:5px 10px!important}.course-performance-dashboard{display:flex;flex-direction:column;gap:24px}.course-perf-section-card{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000a}.course-perf-section-title{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--text-primary, #0f172a)}.course-perf-section-desc{margin:0 0 18px;font-size:13px;color:var(--text-secondary, #64748b)}.course-perf-progress-bar{width:100%;height:6px;background:var(--border-color, #e2e8f0);border-radius:999px;overflow:hidden;margin-top:4px}.course-perf-progress-fill{height:100%;background:var(--accent-primary, #2563eb);border-radius:999px;transition:width .3s ease}.cell-modal-backdrop{position:fixed;inset:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.cell-modal{background:var(--bg-primary, #ffffff);border-radius:14px;width:100%;box-shadow:0 20px 25px -5px #0000001f,0 10px 10px -5px #0000000f;overflow:hidden;animation:cellModalEnter .18s ease-out}@keyframes cellModalEnter{0%{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.cell-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-secondary, #f8fafc)}.cell-modal-title{font-size:15px;font-weight:700;color:var(--text-primary, #0f172a)}.cell-modal-student{font-size:12px;color:var(--text-secondary, #64748b);margin-top:3px}.cell-modal-close{background:transparent;border:none;font-size:20px;line-height:1;color:var(--text-secondary, #64748b);cursor:pointer;padding:2px 6px;border-radius:6px;transition:background .15s}.cell-modal-close:hover{background:var(--bg-hover, #f1f5f9);color:var(--text-primary, #0f172a)}.cell-modal-body{padding:20px;display:flex;flex-direction:column;gap:14px;max-height:68vh;overflow-y:auto}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-field label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #64748b)}.field-box{width:100%;padding:10px 12px;border-radius:8px;font-size:13.5px;border:1px solid var(--border-color, #e2e8f0);background:var(--bg-secondary, #f8fafc);color:var(--text-primary, #0f172a);font-family:inherit;box-sizing:border-box;transition:border-color .15s}.field-box:focus{border-color:var(--accent-primary, #2563eb);background:#fff}.perf-grade-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s ease}.perf-grade-btn.primary{background:var(--accent-primary, #2563eb);color:#fff}.perf-grade-btn.primary:hover:not(:disabled){background:#1d4ed8}.perf-grade-btn.primary:disabled{opacity:.55;cursor:not-allowed}.perf-grade-btn.secondary{background:transparent;border-color:var(--border-color, #e2e8f0);color:var(--text-secondary, #64748b)}.perf-grade-btn.secondary:hover{background:var(--bg-hover, #f1f5f9);color:var(--text-primary, #0f172a)}.cms-container{max-width:1200px;margin:0 auto;padding:32px 24px}.cms-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.cms-header h1{font-size:28px;font-weight:700;color:var(--text-color, #1e293b);margin:0 0 8px}.cms-header p{color:var(--text-secondary, #64748b);margin:0;font-size:15px}.cms-btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--accent-primary, #2563eb);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.cms-btn-primary:hover{background:var(--primary-hover, #1d4ed8);transform:translateY(-1px)}.cms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}.cms-card{background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 2px 4px #0000000a;transition:all .2s ease}.cms-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px #00000014;border-color:var(--primary-color, #3b82f6)}.cms-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.cms-badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px;text-transform:uppercase}.cms-badge.draft{background:#fef3c7;color:#92400e}.cms-badge.published{background:#dcfce7;color:#166534}.cms-badge.in_review{background:#e0e7ff;color:#3730a3}.cms-badge.archived{background:#f1f5f9;color:#475569}.cms-card h3{font-size:18px;font-weight:600;color:var(--text-color, #1e293b);margin:0 0 8px}.cms-card-meta{display:flex;gap:12px;font-size:13px;color:var(--text-secondary, #64748b);margin-bottom:16px}.cms-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color, #f1f5f9)}.cms-card-actions{display:flex;gap:8px}.cms-btn-secondary{background:var(--bg-secondary, #f8fafc);color:var(--text-color, #334155);border:1px solid var(--border-color, #cbd5e1);border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.cms-btn-secondary:hover{background:var(--border-color, #e2e8f0)}.cms-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cms-modal{background:var(--card-bg, #ffffff);border-radius:12px;width:90%;max-width:500px;padding:28px;box-shadow:0 20px 25px -5px #0000001a}.cms-modal h2{margin:0 0 16px;font-size:20px;color:var(--text-color, #1e293b)}.cms-form-group{margin-bottom:16px}.cms-form-group label{display:block;font-size:13px;font-weight:600;color:var(--text-color, #334155);margin-bottom:6px}.cms-form-group input,.cms-form-group select{width:100%;padding:10px 12px;border:1px solid var(--border-color, #cbd5e1);border-radius:8px;font-size:14px;color:var(--text-color, #1e293b);background:var(--input-bg, #ffffff)}.cms-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.test-interface{position:fixed;inset:0;display:flex;flex-direction:row;height:100vh;width:100%;background:var(--bg-primary);z-index:1000}[data-theme=dark] .test-interface{background:var(--bg-secondary)}.test-content-wrapper{flex:1;display:flex;flex-direction:column;transition:width .3s ease;overflow:hidden}.test-content-wrapper.notes-open{width:calc(100% - 400px)}.top-toolbar{background:#036;color:#fff;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);flex-shrink:0;gap:20px;overflow:visible;position:relative}.top-toolbar.time-warning{background:transparent!important}.top-toolbar.time-warning:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#8b0000,#dc143c,#8b0000);animation:warningPulse 2s ease-in-out infinite;z-index:-1}@keyframes warningPulse{0%,to{opacity:1}50%{opacity:.85}}[data-theme=dark] .top-toolbar{background:#1a2332;border-bottom-color:var(--border-color)}[data-theme=dark] .top-toolbar.time-warning{background:linear-gradient(135deg,#8b0000,#dc143c,#8b0000)}.toolbar-left{display:flex;align-items:center;gap:15px;flex:0 0 auto}.candidate-info{display:flex;align-items:center;gap:12px}.candidate-avatar{width:40px;height:40px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#036;font-weight:700;font-size:.9rem;flex-shrink:0}[data-theme=dark] .candidate-avatar{background:#e8eef5}.candidate-details{display:flex;flex-direction:column;gap:2px}.candidate-id{font-size:.85rem;opacity:.9;line-height:1.2;font-weight:500}.candidate-timer{font-size:.8rem;opacity:.85;line-height:1.2}.admin-preview-pill{display:inline-flex;align-items:center;background:#eab30838;color:#fef08a;border:1px solid rgba(234,179,8,.45);padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;-webkit-user-select:none;user-select:none;margin-left:8px}[data-ielts-theme=inverted] .admin-preview-pill,[data-ielts-theme=high-contrast] .admin-preview-pill{background:#222;color:#ff0;border-color:#ff0}[data-ielts-theme=blue] .admin-preview-pill{background:#b9dcff;color:#001f54;border-color:#001f54}.timer-section{display:none}.toolbar-controls{display:flex;gap:12px;flex:0 0 auto;justify-content:flex-end;align-items:center}.admin-step-skipper-container{position:relative;display:inline-flex;align-items:center}.admin-step-skipper-group{display:inline-flex;align-items:stretch;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #00000040;border:1px solid rgba(255,255,255,.25);background:#2563ebe6;transition:all .15s ease}.admin-step-skipper-group:hover{background:#1d4ed8;border-color:#ffffff80;box-shadow:0 2px 6px #00000059}.toolbar-admin-skip-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;color:#fff;border:none;padding:6px 12px;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s ease}.toolbar-admin-skip-btn:hover{background:#ffffff1f}.admin-skip-icon{font-size:.8rem}.toolbar-admin-step-toggle{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#fff;border:none;border-left:1px solid rgba(255,255,255,.2);padding:0 8px;cursor:pointer;transition:background .15s ease}.toolbar-admin-step-toggle:hover,.toolbar-admin-step-toggle.active{background:#fff3}.admin-chevron-icon{font-size:.72rem;transition:transform .2s ease}.admin-chevron-icon.open{transform:rotate(180deg)}.admin-step-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;box-shadow:0 10px 25px -5px #00000040,0 8px 10px -6px #00000026;width:290px;z-index:10002;overflow:hidden;animation:adminDropdownFadeIn .15s ease-out}@keyframes adminDropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.admin-step-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0)}.admin-step-header-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #64748b)}.admin-step-header-pill{font-size:.68rem;font-weight:700;padding:2px 6px;border-radius:4px;background:#dbeafe;color:#1d4ed8;text-transform:uppercase}.admin-step-dropdown-next{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;background:#2563eb0f;border:none;border-bottom:1px solid var(--border-color, #e2e8f0);cursor:pointer;text-align:left;transition:background .15s ease}.admin-step-dropdown-next:hover{background:#2563eb1f}.admin-step-next-icon{width:30px;height:30px;border-radius:6px;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.82rem;flex-shrink:0}.admin-step-next-text{flex:1;min-width:0}.admin-step-next-title{font-size:.84rem;font-weight:700;color:#2563eb}.admin-step-next-desc{font-size:.72rem;color:var(--text-secondary, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-step-divider{height:1px;background:var(--border-color, #e2e8f0)}.admin-step-section-label{padding:8px 14px 4px;font-size:.68rem;font-weight:700;letter-spacing:.05em;color:var(--text-secondary, #94a3b8)}.admin-step-list{padding:4px 0}.admin-step-item{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .12s ease}.admin-step-item:hover{background:var(--bg-secondary, #f1f5f9)}.admin-step-item.active{background:#2563eb14}.admin-step-item-left{display:flex;align-items:center;gap:10px;min-width:0}.admin-step-badge-num{width:22px;height:22px;border-radius:50%;background:var(--bg-secondary, #e2e8f0);color:var(--text-secondary, #64748b);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0}.admin-step-badge-num.active{background:#2563eb;color:#fff}.admin-step-item-meta{display:flex;flex-direction:column;min-width:0}.admin-step-item-title{font-size:.82rem;font-weight:600;color:var(--text-primary, #1e293b)}.admin-step-item.active .admin-step-item-title{color:#2563eb;font-weight:700}.admin-step-item-desc{font-size:.7rem;color:var(--text-secondary, #94a3b8)}.admin-step-active-tag{font-size:.68rem;font-weight:700;padding:2px 6px;border-radius:4px;background:#2563eb;color:#fff}[data-theme=dark] .admin-step-dropdown{background:var(--bg-secondary, #1e293b);border-color:var(--border-color, #334155)}[data-theme=dark] .admin-step-dropdown-header{background:var(--bg-primary, #0f172a);border-color:var(--border-color, #334155)}[data-theme=dark] .admin-step-item:hover{background:var(--bg-primary, #0f172a)}[data-theme=dark] .admin-step-item.active{background:#2563eb33}.admin-sim-list{margin-top:0}.admin-sim-item{border-left:2px solid transparent}.admin-sim-item:hover{border-left-color:#f59e0b;background:#f59e0b0f}.admin-sim-danger:hover{border-left-color:#ef4444;background:#ef444412}.admin-step-badge-sim{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:#f59e0b26;color:#f59e0b;font-size:.75rem;flex-shrink:0}.admin-step-badge-sim.danger{background:#ef444426;color:#ef4444}[data-theme=dark] .admin-sim-item:hover{background:#f59e0b1a}[data-theme=dark] .admin-sim-danger:hover{background:#ef44441f}.menu-dropdown-container{position:relative}.menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000004d;min-width:150px;z-index:10001;overflow:hidden}.menu-dropdown-item{width:100%;background:transparent;border:none;padding:12px 16px;display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--text-primary);font-size:14px;font-weight:500;transition:all .2s ease;text-align:left;border-bottom:1px solid var(--border-color)}.menu-dropdown-item:last-child{border-bottom:none}.menu-dropdown-item:hover{background:var(--bg-secondary)}.menu-dropdown-item svg{flex-shrink:0}.toolbar-icon-btn{background:transparent;border:none;color:#fff;width:40px;height:40px;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:0}.toolbar-icon-btn:hover{background:#ffffff26}.toolbar-icon-btn svg{stroke:currentColor}.volume-control{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#ffffff1a;border-radius:4px;border:1px solid rgba(255,255,255,.3)}.volume-control svg{stroke:#fff;flex-shrink:0}.volume-slider{width:60px;height:4px;border-radius:2px;outline:none;-webkit-appearance:none;appearance:none;background:#ffffff4d;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;cursor:pointer;transition:all .2s ease}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.volume-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;cursor:pointer;border:none;transition:all .2s ease}.volume-slider::-moz-range-thumb:hover{transform:scale(1.2)}.main-content-area,.content-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.content-wrapper.content-hidden{filter:blur(20px);pointer-events:none;-webkit-user-select:none;user-select:none}.content-hidden-overlay{position:absolute;inset:0;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:100;pointer-events:all}.content-hidden-message{text-align:center;color:#fff;padding:40px;max-width:400px}.content-hidden-message svg{margin-bottom:20px;opacity:.9}.content-hidden-message h2{font-size:1.8rem;margin-bottom:12px;font-weight:600}.content-hidden-message p{font-size:1rem;opacity:.8;line-height:1.5}.nav-arrow{min-width:120px;height:40px;border:2px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.nav-arrow:hover:not(:disabled){border-color:#06c;background:#f0f8ff;color:#06c;transform:translateY(-1px)}.nav-arrow:disabled{opacity:.3;cursor:not-allowed}.bottom-controls{background:var(--bg-secondary);border-top:2px solid var(--border-color);padding:16px 24px;display:flex;flex-direction:column;gap:12px;align-items:center;flex-shrink:0;position:relative}.question-numbers{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;overflow-x:auto;padding:8px 20px;width:100%}.question-row{display:flex;gap:20px;align-items:center;justify-content:center}.writing-tasks-row{gap:40px}.question-part{display:flex;flex-direction:column;align-items:center;gap:8px}.part-label{font-size:.8rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.part-questions{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.question-number-btn{min-width:32px;height:32px;border:none;border-top:4px solid #ddd;background:var(--bg-primary);color:var(--text-primary);border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;padding:0 6px;position:relative}.question-number-btn:hover{background:#f0f8ff;transform:translateY(-2px)}.question-number-btn.current{background:#e3f2fd;color:#06c;border-top-color:#06c;box-shadow:0 2px 8px #06c3}.question-number-btn.answered,.question-number-btn.current.answered{border-top-color:#28a745}.question-number-btn.flagged{border-top-color:#ffc107}.question-number-btn.flagged:after{content:"🚩";position:absolute;top:-2px;right:-2px;font-size:.7rem}.task-btn{min-width:60px;height:50px;font-size:1.1rem}.context-menu{position:fixed;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 16px #00000026;padding:4px;z-index:10000;min-width:180px}.context-menu-item{width:100%;padding:10px 16px;border:none;background:transparent;color:var(--text-primary);font-size:.9rem;text-align:left;cursor:pointer;border-radius:4px;display:flex;align-items:center;gap:10px;transition:background .2s ease}.context-menu-item:hover{background:var(--bg-hover)}.context-menu-item svg{flex-shrink:0}.submit-btn{background:var(--accent-primary);color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .3s ease}.submit-btn:hover{background:var(--accent-secondary)}.screen-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg-primary);display:flex;justify-content:center;align-items:center;z-index:9999;flex-direction:column;gap:20px}.screen-overlay h2{color:var(--text-primary);font-size:2rem;margin:0}.screen-overlay p{color:var(--text-secondary);font-size:1.1rem;margin:0;text-align:center;max-width:500px}.unhide-btn{background:var(--accent-primary);color:#fff;padding:16px 48px;border:none;border-radius:8px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:30px;box-shadow:0 4px 12px #0003}.unhide-btn:hover{background:var(--accent-secondary);transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.test-interface .main-content{flex:1;display:flex;overflow:hidden;min-height:0;margin:0;padding:0;position:relative}.test-interface .left-panel{flex:1;overflow-y:auto;min-width:0}.test-interface .right-panel{width:420px;overflow-y:auto;flex-shrink:0}.question-block{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:20px;margin-bottom:20px}.question-number{color:var(--accent-primary);font-weight:700;margin-bottom:10px;font-size:1rem}.question-text{color:var(--text-primary);margin-bottom:15px;line-height:1.5}.answer-input{width:100%;padding:10px;border:2px solid var(--border-color);border-radius:4px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary);transition:border-color .3s ease}.answer-input:focus{outline:none;border-color:#06c}.multiple-choice{display:flex;flex-direction:column;gap:10px}.choice-option{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .3s ease;color:var(--text-primary)}.choice-option:hover{background:var(--bg-hover);border-color:#06c}.choice-option.selected{background:#e6f3ff;border-color:#06c}[data-theme=dark] .choice-option.selected{background:#1e3a5f}.choice-radio{width:16px;height:16px;border:2px solid var(--border-color);border-radius:50%;position:relative;flex-shrink:0}.choice-option.selected .choice-radio{border-color:#06c}.choice-option.selected .choice-radio:after{content:"";width:8px;height:8px;background:#06c;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media(max-width:1024px){.toolbar-controls{gap:10px}.toolbar-btn{padding:6px 12px;font-size:.85rem}.question-numbers{padding:0 10px;gap:6px}.question-row{gap:15px}.question-part{gap:6px}.question-number-btn{min-width:24px;height:24px;font-size:.75rem}.part-label{font-size:.7rem}}@media(max-width:768px){.bottom-controls{flex-wrap:wrap;padding:10px 15px}.question-numbers{width:100%;order:3;margin-top:10px;gap:6px}.question-row{flex-direction:column;gap:6px;width:100%}.question-part{gap:4px;width:100%;justify-content:flex-start}.part-questions{gap:3px;flex-wrap:wrap}.question-number-btn{min-width:26px;height:26px}}.notes-panel{width:400px;background:var(--bg-secondary);border-left:2px solid var(--border-color);display:flex;flex-direction:column;height:100vh;flex-shrink:0}.notes-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:2px solid var(--border-color);background:var(--bg-primary)}.notes-header h3{margin:0;font-size:1.2rem;color:var(--text-primary)}.notes-close-btn{background:none;border:none;cursor:pointer;color:var(--text-primary);padding:4px;border-radius:4px;transition:all .2s ease}.notes-close-btn:hover{background:var(--bg-hover)}.text-action-menu{position:absolute;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000004d;display:flex;gap:0;overflow:hidden;z-index:10000}.text-action-btn{background:var(--bg-primary);border:none;padding:10px 16px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text-primary);font-size:14px;font-weight:500;transition:all .2s ease;white-space:nowrap}.text-action-btn:first-child{border-right:1px solid var(--border-color)}.text-action-btn:hover{background:var(--bg-secondary)}.text-action-btn svg{width:18px;height:18px;flex-shrink:0}.highlight-btn:hover{background:var(--highlight-hover)}.note-btn:hover{background:var(--note-hover)}.highlight-menu{position:fixed;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000004d;overflow:hidden;z-index:10000;transform:translate(-50%)}.highlight-menu-btn{background:var(--bg-primary);border:none;border-bottom:1px solid var(--border-color);padding:10px 16px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text-primary);font-size:14px;font-weight:500;transition:all .2s ease;white-space:nowrap;width:100%}.highlight-menu-btn:last-child{border-bottom:none}.highlight-menu-btn:hover{background:var(--bg-secondary)}.highlight-menu-btn.open-note-btn:hover{background:#e6f2ff;color:#06c}[data-theme=dark] .highlight-menu-btn.open-note-btn:hover{background:#1a3a52;color:#66b3ff}.highlight-menu-btn.delete-btn:hover{background:#fee;color:#dc3545}[data-theme=dark] .highlight-menu-btn.delete-btn:hover{background:#4a1f1f;color:#ff6b6b}.highlight-menu-btn svg{width:16px;height:16px;flex-shrink:0}.text-highlight,mark.text-highlight{background-color:var(--highlight-bg)!important;color:inherit;padding:2px 0;border-radius:2px;cursor:pointer;transition:opacity .2s ease}.text-highlight:hover,mark.text-highlight:hover{opacity:.8}.text-highlight-note,mark.text-highlight-note{background-color:var(--note-highlight-bg)!important;color:inherit;padding:2px 0;border-radius:2px;cursor:pointer;transition:opacity .2s ease}.text-highlight-note:hover,mark.text-highlight-note:hover{opacity:.8}.notes-input-area{padding:16px 20px;border-bottom:2px solid var(--border-color);background:var(--bg-primary)}.note-input-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.note-input-question{background:#06c;color:#fff;padding:4px 10px;border-radius:4px;font-size:.8rem;font-weight:600;flex-shrink:0}.note-input-selected-text{color:var(--text-secondary);font-size:.9rem;font-style:italic;line-height:1.4}.note-input{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:6px;resize:vertical;font-size:.95rem;background:var(--bg-secondary);color:var(--text-primary);font-family:inherit;margin-bottom:10px}.note-input:focus{outline:none;border-color:#06c}.note-input-actions{display:flex;gap:8px}.add-note-btn{flex:1;padding:10px;background:#06c;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s ease}.add-note-btn:hover{background:#0052a3}.cancel-note-btn{flex:1;padding:10px;background:#f5f5f5;color:#666;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s ease}.cancel-note-btn:hover{background:#e0e0e0;color:#333}.notes-list{flex:1;overflow-y:auto;padding:16px 20px}.no-notes{text-align:center;color:var(--text-secondary);padding:40px 20px;font-style:italic}.note-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:12px;margin-bottom:12px;position:relative;transition:all .2s ease}.note-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.note-header-item{display:flex;justify-content:flex-start;align-items:center;margin-bottom:8px;gap:8px;flex-wrap:wrap}.note-question{background:#06c;color:#fff;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;flex-shrink:0}.note-selected-text{color:var(--text-secondary);font-size:.85rem;font-style:italic;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}[data-theme=dark] .note-selected-text{color:var(--text-secondary)}.note-content{color:var(--text-primary);line-height:1.6;font-size:.9rem;word-wrap:break-word;padding-right:80px}.note-actions{position:absolute;top:12px;right:12px;display:flex;gap:6px}.edit-note-btn{background:none;border:none;color:#06c;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.edit-note-btn:hover{background:#0066cc1a}.delete-note-btn{background:none;border:none;color:#dc3545;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.delete-note-btn:hover{background:#dc35451a}@media(max-width:1024px){.notes-panel{width:320px}.test-content-wrapper.notes-open{width:calc(100% - 320px)}}@media(max-width:768px){.notes-panel{position:absolute;top:0;right:0;width:100%;z-index:1001}.test-content-wrapper.notes-open{width:100%}}.audio-resume-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:none}.audio-resume-card{background:var(--bg-primary, #ffffff);color:var(--text-primary, #1e293b);border-radius:16px;padding:26px 28px;width:90%;max-width:380px;text-align:center;box-shadow:0 20px 25px -5px #0003,0 10px 10px -5px #0000001a;border:1px solid var(--border-color, #e2e8f0)}.audio-resume-icon-wrap{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#2563eb;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:24px}[data-theme=dark] .audio-resume-icon-wrap{background:linear-gradient(135deg,#1e3a8a,#1e40af);color:#93c5fd}.audio-resume-card h3{margin:0 0 8px;font-size:1.25rem;font-weight:700}.audio-resume-card p{margin:0 0 20px;font-size:.92rem;line-height:1.5;color:var(--text-secondary, #64748b)}.btn-resume-audio{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 22px;background:#2563eb;color:#fff;border:none;border-radius:10px;font-size:.98rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 6px -1px #2563eb4d}.btn-resume-audio:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 6px 12px -2px #2563eb66}.btn-resume-audio:active{transform:translateY(0)}.audio-resume-actions{display:flex;flex-direction:column}@keyframes fadeInModal{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.test-toast-notification{position:fixed;top:20px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-radius:10px;box-shadow:0 10px 25px -5px #00000040,0 8px 10px -6px #00000026;z-index:10002;animation:slideInToast .3s cubic-bezier(.16,1,.3,1);max-width:480px;font-size:.92rem;font-weight:500;border:1px solid transparent;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.test-toast-content{display:flex;align-items:center;gap:10px;line-height:1.4}.test-toast-icon{font-size:1.15rem;flex-shrink:0}.test-toast-icon.spin{animation:toastSpin 1s linear infinite}@keyframes toastSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.test-toast-close{background:transparent;border:none;color:inherit;opacity:.7;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:opacity .2s ease,background-color .2s ease}.test-toast-close:hover{opacity:1;background:#00000014}.test-toast-notification.success{background:#f0fdf4;color:#166534;border-color:#86efac}[data-theme=dark] .test-toast-notification.success{background:#052e16;color:#86efac;border-color:#166534}.test-toast-notification.syncing{background:#eff6ff;color:#1e40af;border-color:#93c5fd}[data-theme=dark] .test-toast-notification.syncing{background:#172554;color:#93c5fd;border-color:#1e3a8a}.test-toast-notification.info{background:#f8fafc;color:#1e293b;border-color:#cbd5e1}[data-theme=dark] .test-toast-notification.info{background:#1e293b;color:#f1f5f9;border-color:#334155}.test-toast-notification.error{background:#fef2f2;color:#991b1b;border-color:#fca5a5}[data-theme=dark] .test-toast-notification.error{background:#450a0a;color:#fca5a5;border-color:#991b1b}@keyframes slideInToast{0%{transform:translateY(-20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.test-completion-modal-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:10001;animation:none;padding:20px}.test-completion-card{background:var(--bg-primary, #ffffff);color:var(--text-primary, #1e293b);border-radius:20px;padding:40px;width:100%;max-width:520px;text-align:center;box-shadow:0 25px 50px -12px #00000059;border:1px solid var(--border-color, #e2e8f0)}.test-completion-icon-wrap{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#16a34a;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:36px}[data-theme=dark] .test-completion-icon-wrap{background:linear-gradient(135deg,#14532d,#166534);color:#86efac}.test-completion-title{margin:0 0 6px;font-size:1.5rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}.test-completion-subtitle{margin:0 0 14px;font-size:1.1rem;font-weight:600;color:#16a34a}[data-theme=dark] .test-completion-subtitle{color:#4ade80}.test-completion-description{margin:0 0 24px;font-size:.95rem;line-height:1.55;color:var(--text-secondary, #64748b)}.test-completion-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:16px;margin-bottom:20px;text-align:left}.completion-detail-item{display:flex;flex-direction:column;gap:2px}.completion-detail-label{font-size:.75rem;font-weight:600;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em}.completion-detail-value{font-size:.9rem;font-weight:600;color:var(--text-primary);word-break:break-word}.status-badge-completed{display:inline-flex;align-items:center;color:#16a34a}.test-completion-modules-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:28px}.completion-module-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:.85rem;font-weight:600;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}[data-theme=dark] .completion-module-chip{background:#14532d;color:#86efac;border-color:#166534}.btn-finish-test{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 24px;background:#06c;color:#fff;border:none;border-radius:12px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 10px #0066cc4d}.btn-finish-test:hover{background:#0052a3;transform:translateY(-1px);box-shadow:0 6px 16px #06c6}.btn-finish-test:active{transform:translateY(0)}.test-recovery-modal-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:10002;animation:none;padding:20px}.test-recovery-card{background:var(--bg-primary, #ffffff);color:var(--text-primary, #1e293b);border-radius:20px;padding:36px 32px;width:100%;max-width:540px;text-align:center;box-shadow:0 25px 50px -12px #00000073;border:2px solid #f59e0b}.test-recovery-icon-wrap{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:34px}[data-theme=dark] .test-recovery-icon-wrap{background:linear-gradient(135deg,#78350f,#92400e);color:#fcd34d}.test-recovery-title{margin:0 0 6px;font-size:1.45rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}.test-recovery-subtitle{margin:0 0 14px;font-size:1rem;font-weight:700;color:#d97706}[data-theme=dark] .test-recovery-subtitle{color:#fbbf24}.test-recovery-description{margin:0 0 20px;font-size:.92rem;line-height:1.5;color:var(--text-secondary, #64748b)}.test-recovery-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:14px;margin-bottom:18px;text-align:left}.recovery-summary-item{display:flex;flex-direction:column;gap:2px}.recovery-summary-label{font-size:.72rem;font-weight:600;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em}.recovery-summary-value{font-size:.88rem;font-weight:600;color:var(--text-primary);word-break:break-word}.recovery-summary-value.status-overdue{color:#dc2626;font-weight:700}.recovery-summary-value.status-safe{color:#16a34a;display:inline-flex;align-items:center}.recovery-alert-box{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;margin-bottom:16px;font-size:.86rem;text-align:left;line-height:1.45}.recovery-alert-box .alert-icon{font-size:1.1rem;flex-shrink:0;margin-top:2px}.recovery-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}[data-theme=dark] .recovery-alert-error{background:#450a0a;border-color:#7f1d1d;color:#fca5a5}.recovery-alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}[data-theme=dark] .recovery-alert-success{background:#052e16;border-color:#14532d;color:#86efac}.test-recovery-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.btn-recovery-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px 20px;background:#06c;color:#fff;border:none;border-radius:10px;font-size:.98rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 10px #0066cc40}.btn-recovery-submit:hover:not(:disabled){background:#0052a3;transform:translateY(-1px);box-shadow:0 6px 14px #0066cc59}.btn-recovery-submit:disabled{opacity:.75;cursor:not-allowed}.btn-recovery-backup{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 20px;background:transparent;color:var(--text-primary);border:1.5px solid var(--border-color, #cbd5e1);border-radius:10px;font-size:.92rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-recovery-backup:hover{background:var(--bg-secondary, #f1f5f9);border-color:#94a3b8}.recovery-backup-status{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.82rem;font-weight:600;color:#16a34a;animation:fadeInModal .2s ease-in}[data-theme=dark] .recovery-backup-status{color:#4ade80}.recovery-supervisor-box{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:10px 14px;font-size:.8rem;color:#92400e;text-align:left;line-height:1.45;margin-bottom:16px}[data-theme=dark] .recovery-supervisor-box{background:#451a03;border-color:#78350f;color:#fde68a}.test-recovery-footer-actions{display:flex;justify-content:center}.btn-recovery-exit{background:none;border:none;color:var(--text-secondary, #64748b);font-size:.86rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;transition:color .2s ease}.btn-recovery-exit:hover{color:#06c;text-decoration:underline}.theme-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:10000;animation:none}.theme-modal-card{background:var(--bg-primary, #ffffff);color:var(--text-primary, #1e293b);border-radius:12px;padding:24px 28px;width:92%;max-width:480px;box-shadow:0 10px 25px #0003;border:1px solid var(--border-color, #e2e8f0)}.theme-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.theme-modal-header h3{font-size:1.25rem;font-weight:700;margin:0}.theme-modal-close{background:transparent;border:none;font-size:1.1rem;color:var(--text-secondary, #64748b);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.theme-modal-close:hover{background:var(--bg-secondary, #f1f5f9);color:var(--text-primary, #1e293b)}.theme-modal-description{font-size:.9rem;color:var(--text-secondary, #64748b);margin-bottom:18px}.theme-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}.theme-option-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;border:2px solid var(--border-color, #e2e8f0);background:var(--bg-secondary, #f8fafc);cursor:pointer;transition:none}.theme-option-card:hover{border-color:#3b82f6}.theme-option-card.selected{border-color:#2563eb;background:#eff6ff}.theme-option-card.selected .theme-option-title{color:#1e293b}.theme-option-card.selected .theme-option-desc{color:#475569}.theme-option-card input[type=radio]{cursor:pointer;accent-color:#2563eb}.theme-swatch{width:38px;height:38px;border-radius:8px;border:2px solid;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0;box-shadow:0 2px 4px #0000001a}.theme-swatch[data-swatch-id=standard]{background-color:#fff!important;color:#000!important;border-color:#ccc!important}.theme-swatch[data-swatch-id=standard] .swatch-letter{color:#000!important}.theme-swatch[data-swatch-id=inverted]{background-color:#000!important;color:#fff!important;border-color:#444!important}.theme-swatch[data-swatch-id=inverted] .swatch-letter{color:#fff!important}.theme-swatch[data-swatch-id=high-contrast]{background-color:#000!important;color:#ff0!important;border-color:#ff0!important}.theme-swatch[data-swatch-id=high-contrast] .swatch-letter{color:#ff0!important}.theme-swatch[data-swatch-id=blue]{background-color:#d0e8ff!important;color:#001f54!important;border-color:#85b8e8!important}.theme-swatch[data-swatch-id=blue] .swatch-letter{color:#001f54!important}.theme-option-info{display:flex;flex-direction:column}.theme-option-title{font-size:.9rem;font-weight:600;color:var(--text-primary, #1e293b)}.theme-option-desc{font-size:.75rem;color:var(--text-secondary, #64748b)}.theme-modal-actions{display:flex;justify-content:flex-end}.btn-theme-apply{padding:10px 22px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-theme-apply:hover{background:#1d4ed8}.test-interface[data-ielts-theme=inverted]{background:#000!important;color:#fff!important}.test-interface[data-ielts-theme=inverted] .top-toolbar{background:#121212!important;color:#fff!important;border-bottom:1px solid #333333!important}.test-interface[data-ielts-theme=inverted] .bottom-controls{background:#121212!important;border-top:1px solid #333333!important}.test-interface[data-ielts-theme=inverted] .question-part,.test-interface[data-ielts-theme=inverted] .part-label{color:#ccc!important}.test-interface[data-ielts-theme=inverted] .question-number-btn{background:#1e1e1e!important;color:#fff!important;border:1px solid #444444!important}.test-interface[data-ielts-theme=inverted] .question-number-btn.current{background:#2563eb!important;color:#fff!important;border-color:#3b82f6!important}.test-interface[data-ielts-theme=inverted] .question-number-btn.answered{background:#27272a!important;color:#a1a1aa!important;border-color:#52525b!important}.test-interface[data-ielts-theme=inverted] .main-content-area,.test-interface[data-ielts-theme=inverted] .reading-layout,.test-interface[data-ielts-theme=inverted] .writing-layout,.test-interface[data-ielts-theme=inverted] .listening-layout,.test-interface[data-ielts-theme=inverted] .reading-passage-column,.test-interface[data-ielts-theme=inverted] .reading-questions-column{background:#000!important;color:#fff!important}.test-interface[data-ielts-theme=inverted] .notes-panel{background:#121212!important;color:#fff!important;border-left:1px solid #333333!important}.test-interface[data-ielts-theme=inverted] .notes-panel-header{background:#18181b!important;color:#fff!important;border-bottom:1px solid #333333!important}.test-interface[data-ielts-theme=inverted] input[type=text],.test-interface[data-ielts-theme=inverted] textarea,.test-interface[data-ielts-theme=inverted] select,.test-interface[data-ielts-theme=inverted] .shared-inline-gap-input{background:#18181b!important;color:#fff!important;border:1px solid #3f3f46!important}.test-interface[data-ielts-theme=inverted] .theme-modal-card,[data-ielts-theme=inverted] .theme-modal-card{background:#18181b!important;color:#fff!important;border:1px solid #3f3f46!important;box-shadow:0 10px 30px #000000b3!important}.test-interface[data-ielts-theme=inverted] .theme-modal-header h3,[data-ielts-theme=inverted] .theme-modal-header h3{color:#fff!important}.test-interface[data-ielts-theme=inverted] .theme-modal-description,[data-ielts-theme=inverted] .theme-modal-description,.test-interface[data-ielts-theme=inverted] .theme-modal-close,[data-ielts-theme=inverted] .theme-modal-close{color:#a1a1aa!important}.test-interface[data-ielts-theme=inverted] .theme-modal-close:hover,[data-ielts-theme=inverted] .theme-modal-close:hover{background:#27272a!important;color:#fff!important}.test-interface[data-ielts-theme=inverted] .theme-option-card,[data-ielts-theme=inverted] .theme-option-card{background:#27272a!important;border:2px solid #3f3f46!important}.test-interface[data-ielts-theme=inverted] .theme-option-card:hover,[data-ielts-theme=inverted] .theme-option-card:hover{border-color:#60a5fa!important;background:#2e2e33!important}.test-interface[data-ielts-theme=inverted] .theme-option-card.selected,[data-ielts-theme=inverted] .theme-option-card.selected{background:#172554!important;border-color:#3b82f6!important}.test-interface[data-ielts-theme=inverted] .theme-option-card .theme-option-title,[data-ielts-theme=inverted] .theme-option-card .theme-option-title{color:#fff!important}.test-interface[data-ielts-theme=inverted] .theme-option-card .theme-option-desc,[data-ielts-theme=inverted] .theme-option-card .theme-option-desc{color:#a1a1aa!important}.test-interface[data-ielts-theme=inverted] .theme-option-card.selected .theme-option-title,[data-ielts-theme=inverted] .theme-option-card.selected .theme-option-title{color:#fff!important}.test-interface[data-ielts-theme=inverted] .theme-option-card.selected .theme-option-desc,[data-ielts-theme=inverted] .theme-option-card.selected .theme-option-desc{color:#bfdbfe!important}.test-interface[data-ielts-theme=inverted] .theme-option-card input[type=radio],[data-ielts-theme=inverted] .theme-option-card input[type=radio]{accent-color:#3b82f6!important}.test-interface[data-ielts-theme=inverted] .btn-theme-apply,[data-ielts-theme=inverted] .btn-theme-apply{background:#2563eb!important;color:#fff!important}.test-interface[data-ielts-theme=inverted] .btn-theme-apply:hover,[data-ielts-theme=inverted] .btn-theme-apply:hover{background:#1d4ed8!important}.test-interface[data-ielts-theme=high-contrast]{background:#000!important;color:#ff0!important}.test-interface[data-ielts-theme=high-contrast] .top-toolbar{background:#000!important;color:#ff0!important;border-bottom:2px solid #ffff00!important}.test-interface[data-ielts-theme=high-contrast] .candidate-timer{color:#ff0!important;font-weight:700!important}.test-interface[data-ielts-theme=high-contrast] .candidate-avatar{background:#ff0!important;color:#000!important;font-weight:800!important}.test-interface[data-ielts-theme=high-contrast] .toolbar-icon-btn{color:#ff0!important}.test-interface[data-ielts-theme=high-contrast] .bottom-controls{background:#000!important;border-top:2px solid #ffff00!important}.test-interface[data-ielts-theme=high-contrast] .question-part,.test-interface[data-ielts-theme=high-contrast] .part-label{color:#ff0!important}.test-interface[data-ielts-theme=high-contrast] .question-number-btn{background:#000!important;color:#ff0!important;border:1px solid #ffff00!important}.test-interface[data-ielts-theme=high-contrast] .question-number-btn.current{background:#0ff!important;color:#000!important;border-color:#0ff!important;font-weight:800!important}.test-interface[data-ielts-theme=high-contrast] .question-number-btn.answered{background:#330!important;color:#ff0!important;border-color:#ff0!important}.test-interface[data-ielts-theme=high-contrast] .main-content-area,.test-interface[data-ielts-theme=high-contrast] .reading-layout,.test-interface[data-ielts-theme=high-contrast] .writing-layout,.test-interface[data-ielts-theme=high-contrast] .listening-layout,.test-interface[data-ielts-theme=high-contrast] .reading-passage-column,.test-interface[data-ielts-theme=high-contrast] .reading-questions-column{background:#000!important;color:#ff0!important}.test-interface[data-ielts-theme=high-contrast] .notes-panel{background:#000!important;color:#ff0!important;border-left:2px solid #ffff00!important}.test-interface[data-ielts-theme=high-contrast] .notes-panel-header{background:#000!important;color:#ff0!important;border-bottom:2px solid #ffff00!important}.test-interface[data-ielts-theme=high-contrast] input[type=text],.test-interface[data-ielts-theme=high-contrast] textarea,.test-interface[data-ielts-theme=high-contrast] select,.test-interface[data-ielts-theme=high-contrast] .shared-inline-gap-input,.test-interface[data-ielts-theme=high-contrast] .btn-nav,.test-interface[data-ielts-theme=high-contrast] .theme-modal-card,[data-ielts-theme=high-contrast] .theme-modal-card{background:#000!important;color:#ff0!important;border:2px solid #ffff00!important}.test-interface[data-ielts-theme=high-contrast] .theme-option-card,[data-ielts-theme=high-contrast] .theme-option-card{background:#000!important;border:2px solid #555500!important}.test-interface[data-ielts-theme=high-contrast] .theme-option-card:hover,[data-ielts-theme=high-contrast] .theme-option-card:hover{border-color:#ff0!important}.test-interface[data-ielts-theme=high-contrast] .theme-option-card.selected,[data-ielts-theme=high-contrast] .theme-option-card.selected{background:#220!important;border:2px solid #ffff00!important}.test-interface[data-ielts-theme=high-contrast] .theme-option-card .theme-option-title,[data-ielts-theme=high-contrast] .theme-option-card .theme-option-title{color:#ff0!important}.test-interface[data-ielts-theme=high-contrast] .theme-option-card .theme-option-desc,[data-ielts-theme=high-contrast] .theme-option-card .theme-option-desc{color:#cc0!important}.test-interface[data-ielts-theme=high-contrast] .theme-option-card.selected .theme-option-desc,[data-ielts-theme=high-contrast] .theme-option-card.selected .theme-option-desc{color:#ff5!important}.test-interface[data-ielts-theme=high-contrast] .theme-option-card input[type=radio],[data-ielts-theme=high-contrast] .theme-option-card input[type=radio]{accent-color:#ffff00!important}.test-interface[data-ielts-theme=high-contrast] .theme-modal-description,.test-interface[data-ielts-theme=high-contrast] .theme-modal-close,[data-ielts-theme=high-contrast] .theme-modal-description,[data-ielts-theme=high-contrast] .theme-modal-close{color:#ff0!important}.test-interface[data-ielts-theme=high-contrast] .btn-theme-apply,[data-ielts-theme=high-contrast] .btn-theme-apply{background:#ff0!important;color:#000!important;font-weight:700!important}.test-interface[data-ielts-theme=blue]{background:#d0e8ff!important;color:#001f54!important}.test-interface[data-ielts-theme=blue] .top-toolbar{background:#024!important;color:#fff!important;border-bottom:1px solid #85b8e8!important}.test-interface[data-ielts-theme=blue] .bottom-controls{background:#bdddfa!important;border-top:1px solid #85b8e8!important}.test-interface[data-ielts-theme=blue] .question-part{color:#001f54!important}.test-interface[data-ielts-theme=blue] .part-label{color:#0a3173!important}.test-interface[data-ielts-theme=blue] .question-number-btn{background:#e6f2ff!important;color:#001f54!important;border:1px solid #85b8e8!important}.test-interface[data-ielts-theme=blue] .question-number-btn.current{background:#036!important;color:#fff!important;border-color:#024!important}.test-interface[data-ielts-theme=blue] .question-number-btn.answered{background:#adcff2!important;color:#001f54!important;border-color:#6daae5!important}.test-interface[data-ielts-theme=blue] .main-content-area,.test-interface[data-ielts-theme=blue] .reading-layout,.test-interface[data-ielts-theme=blue] .writing-layout,.test-interface[data-ielts-theme=blue] .listening-layout,.test-interface[data-ielts-theme=blue] .reading-passage-column,.test-interface[data-ielts-theme=blue] .reading-questions-column{background:#d0e8ff!important;color:#001f54!important}.test-interface[data-ielts-theme=blue] .notes-panel{background:#bdddfa!important;color:#001f54!important;border-left:1px solid #85b8e8!important}.test-interface[data-ielts-theme=blue] .notes-panel-header{background:#abd2f5!important;color:#001f54!important;border-bottom:1px solid #85b8e8!important}.test-interface[data-ielts-theme=blue] input[type=text],.test-interface[data-ielts-theme=blue] textarea,.test-interface[data-ielts-theme=blue] select,.test-interface[data-ielts-theme=blue] .shared-inline-gap-input{background:#fff!important;color:#001f54!important;border:1px solid #85b8e8!important}.test-interface[data-ielts-theme=blue] .theme-modal-card,[data-ielts-theme=blue] .theme-modal-card{background:#d0e8ff!important;color:#001f54!important;border:2px solid #85b8e8!important}.test-interface[data-ielts-theme=blue] .theme-modal-header h3,[data-ielts-theme=blue] .theme-modal-header h3{color:#001f54!important}.test-interface[data-ielts-theme=blue] .theme-modal-description,[data-ielts-theme=blue] .theme-modal-description,.test-interface[data-ielts-theme=blue] .theme-modal-close,[data-ielts-theme=blue] .theme-modal-close{color:#0a3173!important}.test-interface[data-ielts-theme=blue] .theme-modal-close:hover,[data-ielts-theme=blue] .theme-modal-close:hover{background:#bdddfa!important;color:#001f54!important}.test-interface[data-ielts-theme=blue] .theme-option-card,[data-ielts-theme=blue] .theme-option-card{background:#e6f2ff!important;border:2px solid #85b8e8!important}.test-interface[data-ielts-theme=blue] .theme-option-card:hover,[data-ielts-theme=blue] .theme-option-card:hover{border-color:#036!important}.test-interface[data-ielts-theme=blue] .theme-option-card.selected,[data-ielts-theme=blue] .theme-option-card.selected{background:#bdddfa!important;border-color:#036!important}.test-interface[data-ielts-theme=blue] .theme-option-card .theme-option-title,[data-ielts-theme=blue] .theme-option-card .theme-option-title{color:#001f54!important}.test-interface[data-ielts-theme=blue] .theme-option-card .theme-option-desc,[data-ielts-theme=blue] .theme-option-card .theme-option-desc{color:#0a3173!important}.test-interface[data-ielts-theme=blue] .theme-option-card input[type=radio],[data-ielts-theme=blue] .theme-option-card input[type=radio]{accent-color:#003366!important}.test-interface[data-ielts-theme=blue] .btn-theme-apply,[data-ielts-theme=blue] .btn-theme-apply{background:#036!important;color:#fff!important}.test-interface[data-ielts-theme=blue] .btn-theme-apply:hover,[data-ielts-theme=blue] .btn-theme-apply:hover{background:#024!important}.app-confirm-overlay{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px;animation:appConfirmFadeIn .2s cubic-bezier(.16,1,.3,1)}.app-confirm-modal{background:var(--card-bg, #ffffff);color:var(--text-color, #1e293b);border-radius:14px;width:100%;max-width:480px;box-shadow:0 20px 25px -5px #00000040,0 8px 10px -6px #00000026;border:1px solid var(--border-color, rgba(226, 232, 240, .8));overflow:hidden;animation:appConfirmScaleUp .25s cubic-bezier(.16,1,.3,1)}[data-theme=dark] .app-confirm-modal{background:#1e293b;color:#f1f5f9;border-color:#334155;box-shadow:0 25px 50px -12px #00000080}.app-confirm-header{display:flex;align-items:flex-start;gap:14px;padding:22px 24px 14px;border-bottom:1px solid var(--border-color, #f1f5f9)}[data-theme=dark] .app-confirm-header{border-bottom-color:#334155}.app-confirm-icon-wrap{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.app-confirm-icon-wrap.primary{background:#eff6ff;color:#2563eb}[data-theme=dark] .app-confirm-icon-wrap.primary{background:#2563eb33;color:#60a5fa}.app-confirm-icon-wrap.warning{background:#fffbeb;color:#d97706}[data-theme=dark] .app-confirm-icon-wrap.warning{background:#d9770633;color:#fbbf24}.app-confirm-icon-wrap.danger{background:#fef2f2;color:#dc2626}[data-theme=dark] .app-confirm-icon-wrap.danger{background:#dc262633;color:#f87171}.app-confirm-title-area{flex:1}.app-confirm-title{margin:0;font-size:1.18rem;font-weight:700;color:var(--text-color, #0f172a);line-height:1.3}[data-theme=dark] .app-confirm-title{color:#f8fafc}.app-confirm-close{background:transparent;border:none;color:var(--text-secondary, #64748b);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .15s ease}.app-confirm-close:hover{background:#0000000f;color:var(--text-color, #0f172a)}[data-theme=dark] .app-confirm-close:hover{background:#ffffff1a;color:#f8fafc}.app-confirm-body{padding:18px 24px;font-size:.95rem;line-height:1.55;color:var(--text-secondary, #475569)}[data-theme=dark] .app-confirm-body{color:#cbd5e1}.app-confirm-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px;background:var(--bg-alt, #f8fafc);border-top:1px solid var(--border-color, #f1f5f9)}[data-theme=dark] .app-confirm-actions{background:#0f172a;border-top-color:#334155}.app-confirm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;border-radius:8px;font-size:.92rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .18s ease}.app-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.app-confirm-btn-cancel{background:var(--btn-secondary-bg, #ffffff);color:var(--text-secondary, #475569);border-color:var(--border-color, #cbd5e1)}.app-confirm-btn-cancel:hover:not(:disabled){background:#f1f5f9;color:#1e293b;border-color:#94a3b8}[data-theme=dark] .app-confirm-btn-cancel{background:#1e293b;color:#cbd5e1;border-color:#475569}[data-theme=dark] .app-confirm-btn-cancel:hover:not(:disabled){background:#334155;color:#f8fafc}.app-confirm-btn-primary{background:#2563eb;color:#fff}.app-confirm-btn-primary:hover:not(:disabled){background:#1d4ed8}.app-confirm-btn-warning{background:#d97706;color:#fff}.app-confirm-btn-warning:hover:not(:disabled){background:#b45309}.app-confirm-btn-danger{background:#dc2626;color:#fff}.app-confirm-btn-danger:hover:not(:disabled){background:#b91c1c}.app-confirm-spinner{animation:appConfirmSpin 1s linear infinite}@keyframes appConfirmSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes appConfirmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes appConfirmScaleUp{0%{opacity:0;transform:scale(.94) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}
