/* ===== LOGIC NOVEL v4 — Cyberpunk Dark Theme ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--bg-deep:#0a0a14;--bg-card:#12121f;--bg-input:#1a1a2e;--cyan:#00e5ff;--cyan-dim:rgba(0,229,255,0.15);--magenta:#ff2d78;--magenta-dim:rgba(255,45,120,0.15);--white:#f0e6ff;--text:#d0c8e8;--text-dim:#8078a0;--success:#00ffcc;--warning:#ffb800;--font-main:'Cairo',sans-serif;--font-mono:'Share Tech Mono',monospace;--font-display:'Orbitron',sans-serif;--radius:12px;--border:2px solid #00e5ff;--border-magenta:2px solid #ff2d78;--glow-cyan:0 0 15px rgba(0,229,255,0.3),0 0 40px rgba(0,229,255,0.1);--glow-magenta:0 0 15px rgba(255,45,120,0.3),0 0 40px rgba(255,45,120,0.1)}
html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-main);background:var(--bg-deep);background-image:radial-gradient(circle at 20% 30%,rgba(0,229,255,.04) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,45,120,.04) 0%,transparent 50%),radial-gradient(rgba(0,229,255,.03) 1px,transparent 1px),radial-gradient(rgba(255,45,120,.03) 1px,transparent 1px);background-size:100% 100%,100% 100%,24px 24px,24px 24px;background-position:0 0,0 0,0 0,12px 12px;color:var(--text);direction:rtl;min-height:100vh;line-height:1.7;overflow-x:hidden}a{color:var(--cyan);text-decoration:none}a:hover{color:var(--magenta)}
/* SPLASH */
.splash-screen{position:fixed;inset:0;z-index:10000;background:var(--bg-deep);display:flex;align-items:center;justify-content:center;padding:1.5rem}.splash-screen.hidden{opacity:0;pointer-events:none;transition:opacity .5s}.splash-card{background:var(--bg-card);border:var(--border);box-shadow:0 0 20px rgba(0,229,255,.3);border-radius:var(--radius);padding:2.5rem 2rem;max-width:620px;width:100%;text-align:center}.splash-logo{font-family:var(--font-display);font-size:2.5rem;font-weight:900;color:var(--cyan);text-shadow:0 0 20px rgba(0,229,255,.5);margin-bottom:1.5rem}.splash-title{font-size:1.4rem;font-weight:900;color:var(--white);margin-bottom:1rem}.splash-desc{font-size:1rem;color:var(--text-dim);margin-bottom:2rem;line-height:1.8}.splash-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;direction:rtl}.splash-btn{flex:1;min-width:220px;padding:1.2rem;border-radius:var(--radius);border:var(--border);background:var(--bg-input);color:var(--white);font-family:var(--font-main);font-size:1rem;font-weight:800;cursor:pointer;transition:all .3s;display:flex;flex-direction:column;align-items:center;gap:.5rem}.splash-btn:hover{transform:translateY(-3px);border-color:var(--magenta);box-shadow:var(--glow-magenta)}.splash-btn .btn-icon{font-size:2rem}.splash-btn .btn-label{font-size:1.1rem;color:var(--cyan)}.splash-btn .btn-sub{font-size:.8rem;color:var(--text-dim)}
/* APP CONTAINER */
.app-container{max-width:1200px;margin:0 auto;padding:1rem;display:none;flex-direction:column;gap:1.2rem;opacity:0;transform:translateY(30px);transition:all .6s cubic-bezier(.175,.885,.32,1.275)}.app-container.loaded{display:flex;opacity:1;transform:translateY(0)}
/* HEADER */
.app-header{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.5rem;background:var(--bg-card);border:var(--border);border-radius:var(--radius);flex-wrap:wrap;gap:.8rem}.header-brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.5rem;font-weight:900;color:var(--cyan)}.header-status{font-family:var(--font-mono);font-size:.8rem;background:var(--bg-input);color:var(--cyan);padding:.3rem 1rem;border-radius:4px;border:1px solid var(--cyan)}
/* MODE SWITCHER */
.mode-switcher{display:flex;gap:.8rem;direction:rtl}.mode-btn{flex:1;padding:.8rem 1rem;border:var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);font-family:var(--font-main);font-size:1rem;font-weight:800;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:.5rem}.mode-btn:hover{border-color:var(--magenta);transform:translateY(-2px)}.mode-btn.active{background:var(--cyan);color:var(--bg-deep);border-color:var(--cyan)}
/* TOPIC MENU */
.topic-menu{display:none;flex-wrap:wrap;gap:.6rem;justify-content:center;padding:.8rem;background:var(--bg-card);border:var(--border-magenta);border-radius:var(--radius)}.topic-menu.visible{display:flex}.topic-btn{padding:.5rem 1rem;border:var(--border);border-radius:6px;background:var(--bg-input);color:var(--text);font-family:var(--font-main);font-size:.85rem;font-weight:800;cursor:pointer;transition:all .2s;white-space:nowrap}.topic-btn:hover{border-color:var(--magenta)}.topic-btn.active{background:var(--magenta);color:var(--white);border-color:var(--magenta)}
/* SIDEBAR */
.sidebar{background:var(--bg-card);border:var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.8rem;position:sticky;top:1.5rem;}.sidebar-search{width:100%;padding:.6rem .8rem;border:var(--border);border-radius:6px;background:var(--bg-input);color:var(--white);font-family:var(--font-main);font-size:.85rem;outline:none}.sidebar-search:focus{border-color:var(--magenta)}.sidebar-title{font-size:1rem;font-weight:900;color:var(--cyan);text-align:center;padding-bottom:.5rem;border-bottom:2px solid var(--magenta)}.sidebar-list{display:flex;flex-direction:column;gap:.35rem;flex:1;}.sidebar-item{padding:.55rem .8rem;border:1px solid rgba(0,229,255,.2);border-radius:6px;background:var(--bg-input);font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;white-space:normal;word-break:break-word}.sidebar-item:hover{border-color:var(--cyan);background:var(--cyan-dim)}.sidebar-item.active{border-color:var(--magenta);background:var(--magenta-dim);color:var(--white)}.sidebar-item .badge{font-size:.65rem;padding:.15rem .45rem;border-radius:3px;margin-right:.5rem;font-weight:900;flex-shrink:0}.badge-pending{background:rgba(255,184,0,.2);color:var(--warning);border:1px solid var(--warning)}.badge-active{background:var(--cyan-dim);color:var(--cyan);border:1px solid var(--cyan)}.badge-completed{background:rgba(0,255,204,.15);color:var(--success);border:1px solid var(--success)}
/* LAYOUT */
.main-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;align-items:start}@media(max-width:950px){.main-layout{grid-template-columns:1fr}.sidebar{max-height:none;position:static}.sidebar-list{}}.workspace{display:flex;flex-direction:column;gap:1.2rem}
/* CARD */
.card{background:var(--bg-card);border:var(--border);border-radius:var(--radius);box-shadow:0 0 15px rgba(0,229,255,.2);padding:1.5rem;position:relative}.card.magenta-border{border-color:var(--magenta);box-shadow:var(--glow-magenta)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:2px solid var(--magenta);flex-wrap:wrap;gap:.5rem;direction:rtl}.card-title{font-size:1.15rem;font-weight:900;color:var(--cyan);display:flex;align-items:center;gap:.5rem}.card-tabs{display:flex;gap:.3rem}.card-tab{padding:.35rem .9rem;border:var(--border);border-radius:6px;background:var(--bg-input);color:var(--text-dim);font-family:var(--font-main);font-size:.8rem;font-weight:800;cursor:pointer;transition:all .2s;white-space:nowrap}.card-tab:hover{color:var(--white);border-color:var(--magenta)}.card-tab.active{background:var(--cyan);color:var(--bg-deep);border-color:var(--cyan)}
/* EXPLORATION PANEL */
.exploration-panel{display:flex;flex-direction:column;gap:1rem}.sim-canvas-wrap{background:var(--bg-deep);border-radius:8px;border:1px solid rgba(0,229,255,.2);display:flex;align-items:center;justify-content:center;min-height:300px;position:relative;}.sim-canvas-wrap canvas{width:100%;height:auto;max-width:440px}
/* SLIDES */
.slides-container{display:none;flex-direction:column;gap:.8rem}.slides-container.visible{display:flex}.slide-image-wrap{background:var(--bg-deep);border:1px solid var(--magenta);border-radius:8px;height:240px;display:flex;align-items:center;justify-content:center;cursor:zoom-in;position:relative}.slide-image-wrap img{max-width:100%;max-height:100%;object-fit:contain}.slide-image-wrap .zoom-hint{position:absolute;bottom:6px;right:6px;background:rgba(0,0,0,.7);color:var(--white);padding:2px 8px;font-size:.7rem;border-radius:4px}.slide-nav{display:flex;justify-content:space-between;align-items:center;direction:rtl}.slide-counter{font-family:var(--font-mono);color:var(--cyan);font-size:.85rem;font-weight:900}.slide-dots{display:flex;gap:.4rem}.slide-dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim);cursor:pointer;transition:all .2s}.slide-dot.active{background:var(--magenta);box-shadow:0 0 8px var(--magenta);transform:scale(1.3)}.slide-caption{background:var(--bg-input);border:1px solid var(--magenta);border-radius:6px;padding:.8rem;font-size:.85rem;line-height:1.6;direction:rtl}
/* EXPLORER */
.explorer-container{display:none;flex-direction:column;gap:.6rem}.explorer-container.visible{display:flex}.explorer-verse-tabs{display:flex;gap:.3rem;overflow-x:auto;padding-bottom:.4rem;border-bottom:1px dashed var(--cyan);direction:rtl}.explorer-verse-btn{padding:.3rem .6rem;border:var(--border);border-radius:6px;background:var(--bg-input);color:var(--text);font-family:var(--font-main);font-size:.75rem;cursor:pointer;white-space:nowrap}.explorer-verse-btn.active{background:var(--magenta);color:var(--white);border-color:var(--magenta)}.explorer-display{background:var(--bg-deep);border:var(--border);border-radius:8px;padding:1.2rem;text-align:center;display:flex;flex-direction:column;gap:.5rem;min-height:150px;justify-content:center}.explorer-arabic{font-family:var(--font-main);font-size:2.2rem;font-weight:900;color:var(--cyan);text-shadow:0 0 12px rgba(0,229,255,.5);line-height:1.8}.explorer-meaning{font-size:.9rem;color:var(--text);font-weight:700}.explorer-theology{font-size:.82rem;color:var(--warning);border-top:1px solid rgba(0,229,255,.2);padding-top:.4rem}.explorer-reading-tabs{display:flex;gap:.3rem;direction:rtl}
.sim-controls{display:flex;gap:1rem;align-items:center;direction:rtl;flex-wrap:wrap}.sim-status{font-size:.9rem;color:var(--cyan);font-weight:700}.explanation-box{background:var(--bg-input);border:1px solid var(--magenta);border-radius:8px;padding:1rem;direction:rtl}.explanation-title{font-weight:900;color:var(--cyan);display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}
/* DIALOGUE */
.character-arena{display:flex;justify-content:space-around;align-items:flex-end;height:160px;border-bottom:2px solid var(--cyan);background:linear-gradient(to top,var(--cyan-dim),transparent);position:relative}.character-card{display:flex;flex-direction:column;align-items:center;transition:all .3s cubic-bezier(.175,.885,.32,1.275);transform:translateY(15px);opacity:.5;position:relative}.character-card.active-speaker{transform:translateY(0) scale(1.1);opacity:1;z-index:5}.character-avatar{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:visible;border:3px solid var(--cyan);transition:all .3s;background:var(--bg-input)}.character-card.active-speaker .character-avatar{border-color:var(--magenta);box-shadow:var(--glow-magenta)}.character-avatar svg{width:100%;height:100%}.character-name{margin-top:-8px;z-index:5;background:var(--bg-card);border:1px solid var(--cyan);padding:.2rem .8rem;border-radius:4px;font-size:.8rem;font-weight:900;color:var(--white);white-space:nowrap}.character-card.active-speaker .character-name{background:var(--magenta);border-color:var(--magenta)}.dialogue-bubble{background:var(--bg-input);border:var(--border);border-radius:var(--radius);padding:1.2rem;position:relative;direction:rtl}.dialogue-speaker{font-weight:900;font-size:.95rem;color:var(--magenta);display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}.dialogue-text{font-size:1.05rem;line-height:1.9;color:var(--white);min-height:2rem}.dialogue-nav{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}
/* BUTTONS */
.btn{padding:.5rem 1.2rem;border:var(--border);border-radius:6px;background:var(--bg-input);color:var(--white);font-family:var(--font-main);font-size:.85rem;font-weight:800;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--magenta);transform:translateY(-2px)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-primary{background:var(--cyan);color:var(--bg-deep);border-color:var(--cyan);font-weight:900}.btn-primary:hover:not(:disabled){background:var(--magenta);color:var(--white);border-color:var(--magenta)}.btn-accent{background:var(--magenta);color:var(--white);border-color:var(--magenta)}.btn-sm{padding:.3rem .7rem;font-size:.75rem}
/* QUIZ */
.quiz-question{font-size:1.1rem;font-weight:900;direction:rtl}.quiz-options{display:flex;flex-direction:column;gap:.7rem}.quiz-option{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.2rem;border:var(--border);border-radius:8px;background:var(--bg-input);cursor:pointer;font-weight:700;transition:all .2s;direction:rtl}.quiz-option:hover{border-color:var(--magenta);transform:translateX(-4px)}.quiz-option.correct{background:rgba(0,255,204,.15);border-color:var(--success)}.quiz-option.wrong{background:var(--magenta-dim);border-color:var(--magenta)}.quiz-option.disabled{pointer-events:none;opacity:.7}.quiz-option-index{width:30px;height:30px;border-radius:50%;background:var(--magenta);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.9rem;flex-shrink:0}.quiz-feedback{padding:1rem;border-radius:8px;font-weight:700;line-height:1.7;direction:rtl;display:none}.quiz-feedback.success{display:block;background:rgba(0,255,204,.1);border:1px solid var(--success)}.quiz-feedback.error{display:block;background:var(--magenta-dim);border:1px solid var(--magenta)}
/* SCOREBOARD */
.scoreboard{display:flex;justify-content:space-between;background:var(--bg-deep);padding:.6rem 1rem;border-radius:6px;font-family:var(--font-mono);font-size:.85rem;direction:rtl}.scoreboard span strong{color:var(--magenta)}
/* LIGHTBOX */
.lightbox{position:fixed;inset:0;background:rgba(10,10,20,.95);z-index:50000;display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;visibility:hidden;transition:all .3s}.lightbox.active{opacity:1;visibility:visible}.lightbox-content{max-width:900px;width:100%;max-height:90vh;background:var(--bg-card);border:var(--border);border-radius:var(--radius);display:flex;flex-direction:column;transform:scale(.85);transition:transform .3s}.lightbox.active .lightbox-content{transform:scale(1)}.lightbox-img{width:100%;max-height:70vh;object-fit:contain;border-bottom:2px solid var(--magenta);background:var(--bg-deep)}.lightbox-caption{padding:1rem;font-weight:700;text-align:center;direction:rtl}.lightbox-close{position:absolute;top:-16px;right:-16px;width:40px;height:40px;border-radius:50%;background:var(--magenta);border:2px solid var(--cyan);color:var(--white);font-size:1.5rem;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10}.lightbox-close:hover{transform:scale(1.15)}
/* FLASH */
.flash-screen{position:fixed;inset:0;z-index:60000;display:flex;align-items:center;justify-content:center;background:rgba(10,10,20,.9);opacity:0;visibility:hidden;transition:all .15s}.flash-screen.active{opacity:1;visibility:visible}.flash-banner{background:var(--magenta);color:var(--white);font-family:var(--font-display);font-size:3rem;font-weight:900;padding:1.5rem 3rem;border:3px solid var(--cyan);border-radius:var(--radius);transform:rotate(-3deg) scale(.8);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.flash-screen.active .flash-banner{transform:rotate(-3deg) scale(1.1)}
/* AUDIO DECK */
.audio-deck{background:var(--bg-card);border:var(--border);border-radius:var(--radius);padding:1rem 1.5rem;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.audio-deck .deck-play{width:44px;height:44px;border-radius:50%;background:var(--magenta);border:2px solid var(--cyan);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.audio-deck .deck-play:hover{transform:scale(1.1)}.audio-deck .deck-play svg{width:18px;height:18px;fill:var(--white)}.audio-deck .deck-info{flex:1;min-width:150px}.audio-deck .deck-label{font-size:.7rem;color:var(--text-dim)}.audio-deck .deck-title{font-size:.9rem;font-weight:900;color:var(--white)}.audio-deck #equalizer-canvas{width:180px;height:35px;background:var(--bg-deep);border-radius:4px}.audio-deck .deck-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.audio-deck .deck-slider{display:flex;align-items:center;gap:.4rem}.audio-deck .deck-slider input[type=range]{width:60px;accent-color:var(--magenta)}
/* EVIDENCE TABLE */
.evidence-table{width:100%;border-collapse:collapse;font-size:.88rem;direction:rtl}.evidence-table th{background:var(--magenta);color:var(--white);padding:.6rem;border:1px solid var(--cyan);font-weight:900;text-align:center}.evidence-table td{padding:.6rem;border:1px solid rgba(0,229,255,.2);background:var(--bg-input);line-height:1.6}.evidence-table tr:nth-child(even) td{background:rgba(0,229,255,.04)}
/* SYMBOL POP */
.symbols-container{position:absolute;top:-40px;left:50%;transform:translateX(-50%);pointer-events:none;display:flex;gap:8px;z-index:100}.pop-symbol{font-size:2rem;font-weight:900;animation:popAnim 1.2s cubic-bezier(.175,.885,.32,1.35) forwards;opacity:0}@keyframes popAnim{0%{transform:translateY(20px) scale(.2);opacity:0}15%{transform:translateY(0) scale(1.3);opacity:1}35%{transform:translateY(-5px) scale(1);opacity:1}80%{opacity:1}100%{transform:translateY(-25px) scale(.7);opacity:0}}
/* TERMINAL */
.terminal{background:var(--bg-deep);border:1px solid var(--cyan);border-radius:6px;padding:.6rem .8rem;font-family:var(--font-mono);font-size:.7rem;color:var(--cyan);direction:ltr;display:none}.terminal.visible{display:flex;flex-direction:column;gap:.2rem}.terminal .log-line{display:flex;gap:.5rem}.terminal .log-time{color:var(--warning)}
/* ARCHIVE */
.archive-list{display:flex;flex-direction:column;gap:.5rem}.archive-item{border:1px solid rgba(0,229,255,.3);border-radius:8px;background:var(--bg-input)}.archive-trigger{padding:.8rem 1rem;font-weight:800;cursor:pointer;display:flex;justify-content:space-between;align-items:center;direction:rtl}.archive-trigger:hover{background:var(--cyan-dim)}.archive-content{padding:1rem;border-top:1px dashed var(--cyan);display:none;direction:rtl;font-size:.9rem;line-height:1.8}.archive-content.open{display:block;animation:fadeIn .3s ease}.archive-badge{font-size:.7rem;padding:.15rem .5rem;border-radius:4px;color:var(--cyan);border:1px solid var(--cyan);white-space:nowrap}.archive-critique{margin-top:.6rem;padding:.6rem 1rem;background:var(--magenta-dim);border:1px solid var(--magenta);border-radius:6px;font-size:.82rem}.archive-tabs{display:flex;gap:.3rem;flex-wrap:wrap;direction:rtl}
/* STEPPER */
.stepper{display:flex;gap:.3rem;background:var(--bg-deep);border-radius:8px;padding:.3rem}.stepper-node{flex:1;padding:.5rem;text-align:center;font-size:.8rem;font-weight:800;cursor:pointer;border-radius:6px;color:var(--text-dim);transition:all .2s}.stepper-node:hover{color:var(--white);background:var(--cyan-dim)}.stepper-node.active{background:var(--cyan);color:var(--bg-deep)}
/* ANIMATIONS */
@keyframes shake{0%,100%{transform:translate(0,0)}15%{transform:translate(-6px,3px)}30%{transform:translate(6px,-3px)}45%{transform:translate(-4px,-1px)}60%{transform:translate(4px,1px)}75%{transform:translate(-2px,0)}}.shake{animation:shake .4s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease forwards}
/* FOOTER */
.app-footer{text-align:center;padding:1rem;color:var(--text-dim);font-size:.8rem;border-top:1px solid rgba(0,229,255,.1);margin-top:1rem}
/* RESPONSIVE */
@media(max-width:768px){.app-header,.splash-buttons,.mode-switcher{flex-direction:column}.character-arena{height:120px}.character-avatar{width:80px;height:80px}.card{padding:1rem}.audio-deck{flex-direction:column}}
/* SPEEDLINES */
#speedlines{position:fixed;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(0,229,255,.02) 3px,transparent 4px);opacity:.6}
/* STATE EXPRESSIONS */
.character-card.state-shocked .character-avatar{border-color:var(--warning);animation:shake .3s ease}.character-card.state-triumphant .character-avatar{border-color:var(--success);animation:floatWin 1.5s ease-in-out infinite alternate}@keyframes floatWin{0%{transform:translateY(0)}100%{transform:translateY(-8px)}}
/* CHAT LAYOUT */
.chat-list{display:flex;flex-direction:column;gap:.8rem;padding:.5rem 0}.chat-msg{display:flex;gap:.8rem;align-items:flex-start;padding:.8rem;border-radius:12px;animation:fadeIn .4s ease forwards}.chat-msg.guide{flex-direction:row}.chat-msg.student{flex-direction:row-reverse}.chat-avatar{width:45px;height:45px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:2px solid var(--cyan);font-size:.75rem;font-weight:900}.chat-msg.guide .chat-avatar{background:#ff7b00;color:var(--white)}.chat-msg.student .chat-avatar{background:var(--cyan);color:var(--bg-deep)}.chat-bubble{background:var(--bg-input);border:1px solid rgba(0,229,255,.3);border-radius:12px;padding:.7rem 1rem;max-width:75%;line-height:1.8;font-size:.95rem}.chat-msg.guide .chat-bubble{border-color:var(--magenta)}
