:root{--root-bg:#0f172a;--text-main:#f8fafc;--text-muted:#94a3b8;--primary:#8b5cf6;--primary-hover:#7c3aed;--secondary:#3b82f6;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--glass-bg:#ffffff0d;--glass-border:#ffffff1a;--glass-shadow:0 8px 32px 0 #0000005e;--card-bg:#1e293b;--card-gradient-1:#1e293bcc;--card-gradient-2:#0f172ae6;--bg-shape-1:#100f15;--bg-shape-2:#2f3e6a33;--bg-shape-3:#72274133;--btn-glass-bg:#ffffff1a;--btn-glass-border:#fff3;--btn-glass-hover:#fff3;--option-bg:#ffffff08;--option-border:#ffffff1a}[data-theme=light]{--root-bg:#f8fafc;--text-main:#0f172a;--text-muted:#475569;--glass-bg:#fff9;--glass-border:#00000014;--glass-shadow:0 8px 32px 0 #0000001a;--card-bg:#fff;--card-gradient-1:#ffffffe6;--card-gradient-2:#f8fafcf2;--bg-shape-1:#f4f3f6;--bg-shape-2:#cad1e866;--bg-shape-3:#ebc6d366;--btn-glass-bg:#00000008;--btn-glass-border:#0000001a;--btn-glass-hover:#00000014;--option-bg:#00000005;--option-border:#00000014}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;padding:0}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}body{background-color:var(--root-bg);background-image:radial-gradient(at 0% 0%, var(--bg-shape-1) 0, transparent 50%), radial-gradient(at 50% 0%, var(--bg-shape-2) 0, transparent 50%), radial-gradient(at 100% 0%, var(--bg-shape-3) 0, transparent 50%);color:var(--text-main);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;transition:background-color .3s,color .3s;display:flex}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;transition:all .3s}.glass-panel-hover:hover{border-color:var(--primary);transform:translateY(-4px);box-shadow:0 12px 40px #0003}.btn{cursor:pointer;border:none;border-radius:12px;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn:active:not(:disabled){transform:scale(.96)}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;box-shadow:0 4px 14px #8b5cf663}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf680}.btn-glass{background:var(--btn-glass-bg);color:var(--text-main);border:1px solid var(--btn-glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-glass:hover:not(:disabled){background:var(--btn-glass-hover)}.btn-icon{border-radius:50%;padding:.75rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--glass-bg) 25%, #ffffff14 50%, var(--glass-bg) 75%);background-size:200% 100%;border-radius:8px;animation:1.5s linear infinite shimmer;display:block}[data-theme=light] .skeleton{background:linear-gradient(90deg,#0000000d 25%,#00000014 50%,#0000000d 75%) 0 0/200% 100%}.file-upload-wrapper{display:inline-block;position:relative;overflow:hidden}.file-upload-wrapper input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.flip-card{perspective:1000px;background-color:#0000;width:100%;max-width:600px;min-height:450px;margin:0 auto}.flip-card-inner{text-align:center;width:100%;height:100%;min-height:450px;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.flip-card.flipped .flip-card-inner{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{backface-visibility:hidden;background:linear-gradient(145deg, var(--card-gradient-1), var(--card-gradient-2));border:1px solid var(--glass-border);width:100%;height:100%;box-shadow:var(--glass-shadow);border-radius:24px;flex-direction:column;justify-content:center;align-items:center;padding:2.5rem 2rem;display:flex;position:absolute;overflow-y:auto}.flip-card-front{justify-content:space-between}.flip-card-back{background:linear-gradient(145deg,#8b5cf61a,#3b82f61a);border-color:#8b5cf64d;transform:rotateY(180deg)}[data-theme=light] .flip-card-back{background:linear-gradient(145deg,#8b5cf60d,#3b82f60d);border-color:#8b5cf633}.option-item{background:var(--option-bg);border:1px solid var(--option-border);color:var(--text-main);border-radius:8px;padding:.8rem 1rem;font-size:.95rem;transition:all .2s}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#8b5cf64d;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#8b5cf680}.text-gradient{background:linear-gradient(90deg,#a78bfa,#3b82f6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.animate-spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-theme=light] .text-gradient{background:linear-gradient(90deg,#7c3aed,#2563eb);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@media (width<=768px){.app-main{padding:1rem!important}.app-header{flex-direction:column!important;align-items:flex-start!important;gap:1rem!important;padding:1.5rem 1rem!important}.app-header-left{flex-direction:column!important;align-items:flex-start!important;gap:.5rem!important}.app-header-left span{word-break:break-word;border-left:none!important;padding-left:0!important;font-size:.85rem!important}.app-header-right{flex-wrap:wrap!important;justify-content:flex-start!important;width:100%!important}.mode-selection-container{padding:0 .5rem;gap:1.5rem!important}.mode-card{width:100%!important;max-width:320px!important;padding:2rem 1.5rem!important}.study-title{margin-bottom:2rem!important;font-size:1.7rem!important}}.top-progress-bar{z-index:9999;background-color:#8b5cf633;width:100%;height:4px;position:fixed;top:0;left:0;overflow:hidden}.top-progress-bar:before{content:"";background-color:var(--primary);animation:2.1s cubic-bezier(.65,.815,.735,.395) infinite indeterminate-runner;position:absolute;top:0;bottom:0;left:0}@keyframes indeterminate-runner{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}.spin{animation:1s linear infinite spin}.home-container{flex-direction:column;gap:3rem;width:100%;max-width:600px;min-height:480px;margin:0 auto;display:flex}.home-divider{color:var(--text-muted);align-items:center;gap:1rem;width:100%;display:flex}.home-divider .line{background:var(--glass-border);flex:1;height:1px}.quiz-options-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=800px){.home-container{flex-direction:row;justify-content:center;align-items:stretch;max-width:1200px}.home-column{flex-direction:column;flex:1;justify-content:center;max-width:500px;min-height:380px;display:flex}.home-divider{flex-direction:column;width:auto;padding:0 1rem}.home-divider .line{width:1px;height:100%;min-height:50px}.quiz-options-grid{grid-template-columns:1fr 1fr}}@keyframes bounce-x{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.tab-switcher{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;gap:.25rem;width:fit-content;margin-bottom:1.25rem;padding:.3rem;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:.4rem;padding:.6rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .25s;display:inline-flex}.tab-btn:hover:not(:disabled){background:var(--btn-glass-hover);color:var(--text-main)}.tab-btn.active{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;box-shadow:0 2px 10px #8b5cf64d}.tab-btn:disabled{opacity:.4;cursor:not-allowed}.scan-container{flex-direction:column;gap:1.25rem;width:100%;max-width:720px;margin:0 auto;display:flex}@media (width>=900px){.scan-container{flex-direction:row;align-items:flex-start;max-width:1100px}}.scan-left,.scan-right{flex-direction:column;gap:1.25rem;width:100%;display:flex}@media (width>=900px){.scan-left,.scan-right{flex:1}}.scan-section{padding:1.5rem}.scan-section-header{align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.scan-section-header h3{margin:0;font-size:1.05rem;font-weight:600}.scan-progress-bar{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:4px;width:100%;height:8px;overflow:hidden}.scan-progress-fill{background:linear-gradient(90deg, var(--primary), var(--success));border-radius:4px;height:100%;transition:width .4s;position:relative}.scan-progress-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#fff3 50%,#0000 100%);animation:1.5s ease-in-out infinite progress-shimmer;position:absolute;inset:0}@keyframes progress-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.scan-log{border:1px solid var(--glass-border);background:#0000004d;border-radius:10px;max-height:240px;margin-top:.75rem;padding:.75rem 1rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.78rem;line-height:1.6;overflow-y:auto}[data-theme=light] .scan-log{background:#0000000a}.scan-log-line{color:var(--text-muted);white-space:pre-wrap;word-break:break-word}.key-chips-container{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.key-chip{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;align-items:center;gap:.4rem;padding:.35rem .6rem;font-size:.82rem;transition:all .2s;display:inline-flex}.key-chip:hover{border-color:var(--primary)}.key-chip-index{color:var(--text-muted);font-size:.75rem;font-weight:600}.key-chip-mask{color:var(--text-main);font-family:JetBrains Mono,Fira Code,monospace;font-size:.8rem}.key-chip-status{align-items:center;display:flex}.key-chip-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.15rem;transition:all .2s;display:flex}.key-chip-remove:hover{color:var(--danger);background:#ef44441a}.key-add-row{align-items:center;gap:.5rem;display:flex}.key-input{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-main);border-radius:10px;outline:none;flex:1;padding:.65rem .85rem;font-family:inherit;font-size:.9rem;transition:border-color .2s}.key-input:focus{border-color:var(--primary)}.key-input::placeholder{color:var(--text-muted);opacity:.7}.scan-stat{flex-direction:column;align-items:center;gap:.2rem;display:flex}.scan-stat-value{font-size:1.8rem;font-weight:800;line-height:1}.scan-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}@media (width<=768px){.tab-switcher{width:100%}.tab-btn{flex:1;justify-content:center;padding:.5rem .75rem;font-size:.85rem}.scan-section{padding:1.25rem 1rem}.key-add-row{flex-direction:column}.key-add-row .btn{width:100%}.dedup-summary-panel{flex-direction:column;align-items:stretch!important}.dedup-summary-stats{flex-direction:column!important;gap:.5rem!important}.dedup-summary-actions{width:100%;flex-direction:column!important}.dedup-summary-actions .btn{justify-content:center;width:100%}}.notification-dropdown{z-index:9999;flex-direction:column;width:320px;max-height:400px;padding:0;display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 10px 25px #00000026;background-color:var(--card-bg)!important}@media (width<=480px){.notification-dropdown{width:90%;max-width:360px;height:auto;max-height:80vh;margin:0 auto;position:fixed;top:70px;left:0;right:0}}.dedup-summary-stats{flex-wrap:wrap;gap:1.5rem;display:flex}.dedup-summary-actions{flex-wrap:wrap;gap:.5rem;display:flex}
