:root{--bg: #07111f;--surface: #0d1b2e;--surface-strong: #10233d;--border: rgba(148, 163, 184, .2);--text: #f8fafc;--muted: #a8b4c7;--accent: #60a5fa;--accent-strong: #2563eb;--error: #f87171}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(circle at 15% 0%,rgba(37,99,235,.24),transparent 32rem),linear-gradient(180deg,#07111f,#040914);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}.app{width:min(1120px,100%);margin:0 auto;padding:48px 24px}.topbar{text-align:center;margin-bottom:32px}.title{margin:0;font-size:clamp(2rem,5vw,3rem);letter-spacing:-.06em}.subtitle,.muted{color:var(--muted)}.subtitle{margin:10px 0 0}.flex{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.4fr);gap:20px;align-items:start}.panel{background:linear-gradient(160deg,#10233df5,#091627f5);border:1px solid var(--border);border-radius:22px;padding:24px;box-shadow:0 18px 50px #00000038}.panelHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panelHeader h2{margin:0;font-size:1.2rem}.panelHeader p{margin:7px 0 0;line-height:1.5}.dropzone{width:100%;margin-top:22px;padding:38px 20px;text-align:center;border:1px dashed rgba(148,163,184,.5);border-radius:16px;background:#ffffff06;cursor:pointer;transition:.18s ease}.dropzone:hover,.dropzoneActive{border-color:var(--accent);background:#60a5fa14;transform:translateY(-2px)}.dropzoneDisabled{cursor:not-allowed;opacity:.6;transform:none}.dropTitle{font-weight:700}.dropSub{margin-top:7px;color:var(--muted);font-size:.9rem}.fileName{margin-top:8px;color:var(--accent);font-weight:700;overflow-wrap:anywhere}.primaryBtn,.secondaryBtn{border-radius:12px;cursor:pointer;transition:.18s ease}.primaryBtn{width:100%;margin-top:14px;padding:12px 16px;border:1px solid var(--accent-strong);background:var(--accent-strong);color:#fff;font-weight:700}.primaryBtn:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.secondaryBtn{padding:9px 12px;border:1px solid var(--border);background:#ffffff0d;color:var(--text)}.secondaryBtn:hover:not(:disabled){border-color:var(--accent);background:#60a5fa1a}button:disabled{cursor:not-allowed;opacity:.5}.statusStrip{width:100%;margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#00000029}.bar{height:5px;overflow:hidden;border-radius:999px;background:#ffffff1a}.barRunning:after{content:"";display:block;width:40%;height:100%;border-radius:inherit;background:var(--accent);animation:slide 1.1s infinite linear}@keyframes slide{0%{transform:translate(-120%)}to{transform:translate(280%)}}.statusText{margin-top:8px;color:var(--muted);font-size:.9rem}.errorText{color:var(--error)}.emptyState,.loadingState{margin-top:24px}.emptyState{padding:28px 18px;text-align:center;border:1px dashed var(--border);border-radius:16px}.emptyTitle{margin-bottom:6px;font-weight:700}.skeletonCard{height:220px;border-radius:16px;background:linear-gradient(90deg,#ffffff0a,#ffffff1a,#ffffff0a);background-size:200% 100%;animation:shimmer 1.2s infinite linear}@keyframes shimmer{to{background-position:-200% 0}}.studyTop,.controls{display:flex;gap:10px;flex-wrap:wrap}.studyTop{margin-top:22px}.pill{padding:6px 10px;border:1px solid var(--border);border-radius:999px;font-size:.85rem}.flashcard{min-height:260px;margin-top:14px;padding:28px;display:flex;flex-direction:column;justify-content:center;border:1px solid var(--border);border-radius:18px;background:#0000002e;cursor:pointer;transition:.18s ease}.flashcard:hover{border-color:#60a5faa6;transform:translateY(-2px)}.label,.hint{color:var(--muted);font-size:.82rem}.content{margin:14px 0;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.55}.controls{margin-top:14px}@media(max-width:800px){.app{padding:28px 16px}.flex{grid-template-columns:1fr}.panel{padding:20px}.panelHeader{flex-direction:column}}
