@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";.app-layout{min-height:100vh}.app-layout .ant-layout-sider{border-right:1px solid var(--color-border-light);z-index:100;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:2px 0 8px #00000008;background:#fff!important;position:fixed!important}.sidebar-logo{border-bottom:1px solid var(--color-border-light);cursor:pointer;justify-content:center;align-items:center;gap:10px;height:64px;padding:0 16px;display:flex}.sidebar-logo-icon{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;font-weight:800;display:flex}.sidebar-logo-text{color:var(--color-text-primary);white-space:nowrap;transition:opacity var(--transition-fast), width var(--transition-fast);font-size:17px;font-weight:700;overflow:hidden}.sidebar-menu{padding:12px 8px;border:none!important}.sidebar-menu .ant-menu-item{font-weight:500;border-radius:var(--radius-sm)!important;height:44px!important;margin-bottom:4px!important;line-height:44px!important}.sidebar-menu .ant-menu-item-selected{background:var(--color-primary-bg)!important;color:var(--color-primary)!important}.sidebar-menu .ant-menu-item:hover:not(.ant-menu-item-selected){background:var(--color-background)!important}.app-header{border-bottom:1px solid var(--color-border-light);z-index:99;justify-content:space-between;align-items:center;height:64px;display:flex;position:sticky;top:0;box-shadow:0 1px 4px #00000008;background:#fff!important;padding:0 24px!important}.header-left{align-items:center;gap:16px;display:flex}.header-collapse-btn{cursor:pointer;color:var(--color-text-secondary);transition:color var(--transition-fast);align-items:center;font-size:18px;display:flex}.header-collapse-btn:hover{color:var(--color-primary)}.header-right{align-items:center;gap:16px;display:flex}.header-avatar{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:10px;padding:4px 8px;display:flex}.header-avatar:hover{background:var(--color-background)}.header-username{color:var(--color-text-primary);font-size:14px;font-weight:500}.app-content{background:var(--color-background);min-height:calc(100vh - 64px);padding:24px}.content-with-sidebar{transition:margin-left var(--transition-normal);margin-left:240px}.content-with-sidebar.collapsed{margin-left:80px}.sidebar-overlay{z-index:99;background:#0006;display:none;position:fixed;inset:0}@media (width<=768px){.content-with-sidebar{margin-left:0!important}.app-layout .ant-layout-sider{z-index:200}.sidebar-overlay.visible{display:block}}:root{--color-primary:#4f46e5;--color-primary-light:#818cf8;--color-primary-dark:#3730a3;--color-primary-bg:#eef2ff;--color-success:#10b981;--color-success-light:#34d399;--color-success-bg:#ecfdf5;--color-warning:#f59e0b;--color-warning-light:#fbbf24;--color-warning-bg:#fffbeb;--color-error:#ef4444;--color-error-light:#f87171;--color-error-bg:#fef2f2;--color-background:#f8fafc;--color-card:#fff;--color-text-primary:#1e293b;--color-text-secondary:#64748b;--color-text-tertiary:#94a3b8;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000d;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-family);background-color:var(--color-background);color:var(--color-text-primary);min-height:100vh;line-height:1.6}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-text-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes countDown{0%{stroke-dashoffset:0}to{stroke-dashoffset:283px}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease-out}.animate-slide-up{animation:slideUp var(--transition-slow) ease-out}.animate-scale-in{animation:scaleIn var(--transition-normal) ease-out}.card-hover{transition:transform var(--transition-normal), box-shadow var(--transition-normal)}.card-hover:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}.gradient-blue{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.gradient-green{background:linear-gradient(135deg,#11998e 0%,#38ef7d 100%)}.gradient-purple{background:linear-gradient(135deg,#7f53ac 0%,#647dee 100%)}.gradient-orange{background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%)}.gradient-red{background:linear-gradient(135deg,#eb3349 0%,#f45c43 100%)}.gradient-teal{background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%)}.auth-background{background:linear-gradient(135deg,#667eea 0%,#764ba2 50%,#4f46e5 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.auth-background:before{content:"";background:radial-gradient(circle,#ffffff1a 0%,#0000 70%);width:200%;height:200%;animation:20s ease-in-out infinite float;position:absolute;top:-50%;left:-50%}.auth-background:after{content:"";background:radial-gradient(circle at 20% 80%,#7877c64d 0%,#0000 50%),radial-gradient(circle at 80% 20%,#ff77c626 0%,#0000 50%);width:100%;height:100%;position:absolute;top:0;left:0}.practice-card{border-radius:var(--radius-lg);color:#fff;cursor:pointer;transition:all var(--transition-normal);flex-direction:column;justify-content:space-between;min-height:180px;padding:28px;display:flex;position:relative;overflow:hidden}.practice-card:before{content:"";opacity:0;transition:opacity var(--transition-normal);background:linear-gradient(135deg,#ffffff26 0%,#0000 100%);position:absolute;inset:0}.practice-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px #0003}.practice-card:hover:before{opacity:1}.practice-card:active{transform:translateY(-2px)}.practice-card-blue{background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%)}.practice-card-green{background:linear-gradient(135deg,#059669 0%,#10b981 100%)}.practice-card-purple{background:linear-gradient(135deg,#7c3aed 0%,#a855f7 100%)}.practice-card-orange{background:linear-gradient(135deg,#d97706 0%,#f59e0b 100%)}.practice-card-red{background:linear-gradient(135deg,#dc2626 0%,#ef4444 100%)}.practice-card-teal{background:linear-gradient(135deg,#0891b2 0%,#06b6d4 100%)}.masked-content{filter:blur(6px);-webkit-user-select:none;user-select:none;cursor:pointer;transition:filter var(--transition-normal);position:relative}.masked-content:after{content:"點擊顯示答案";filter:none;color:var(--color-primary);border-radius:var(--radius-sm);background:#ffffffe6;padding:4px 12px;font-size:14px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.masked-content.revealed{filter:none;-webkit-user-select:auto;user-select:auto;cursor:default}.masked-content.revealed:after{display:none}.question-nav-strip{scrollbar-width:thin;gap:8px;padding:8px 4px;display:flex;overflow-x:auto}.question-nav-btn{border:2px solid var(--color-border);background:var(--color-card);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.question-nav-btn.current{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.question-nav-btn.answered{border-color:var(--color-success);background:var(--color-success-bg);color:var(--color-success)}.question-nav-btn.marked{border-color:var(--color-warning);background:var(--color-warning-bg);color:var(--color-warning)}.option-card{border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:var(--color-card);align-items:center;gap:12px;padding:14px 18px;display:flex}.option-card:hover{border-color:var(--color-primary-light);background:var(--color-primary-bg)}.option-card.selected{border-color:var(--color-primary);background:var(--color-primary-bg);box-shadow:0 0 0 1px var(--color-primary)}.option-card.correct{border-color:var(--color-success);background:var(--color-success-bg)}.option-card.incorrect{border-color:var(--color-error);background:var(--color-error-bg)}.stagger-item{animation:fadeInUp var(--transition-slow) ease-out both}.stagger-item:first-child{animation-delay:0s}.stagger-item:nth-child(2){animation-delay:60ms}.stagger-item:nth-child(3){animation-delay:.12s}.stagger-item:nth-child(4){animation-delay:.18s}.stagger-item:nth-child(5){animation-delay:.24s}.stagger-item:nth-child(6){animation-delay:.3s}.ant-card{border-radius:var(--radius-md)!important}.ant-btn{border-radius:var(--radius-sm)!important;font-weight:500!important}.ant-input,.ant-select-selector{border-radius:var(--radius-sm)!important}.ant-table{border-radius:var(--radius-md)!important}.ant-modal-content{border-radius:var(--radius-lg)!important}.ant-message-notice-content{border-radius:var(--radius-md)!important}@media (width<=768px){.practice-card{min-height:150px;padding:20px}}
