:root{--bg: #000000;--card: #0c0d12;--card-2: #12141c;--line: rgba(255, 255, 255, .07);--line-2: rgba(255, 255, 255, .13);--ink: #f2f3f7;--muted: #7c8194;--accent: #7c6cff;--accent-2: #4dd6c1;--glow: rgba(124, 108, 255, .35);--me: #171a26;--bot: #0e1016;--red: #ff5c64;--green: #4dd6a1;--gold: #d4b06a;--arabic: "SF Arabic", "Noto Naskh Arabic", "Geeza Pro", serif}*{box-sizing:border-box}html{background:#07080c}html,body{height:100%;margin:0}body{background:#07080c;color:var(--ink);font-family:var(--arabic)}button,input{font:inherit}.hidden{display:none!important}.home{min-height:100%;padding:28px 18px 60px}.home-head{display:flex;justify-content:center;padding:22px 0 30px}.home-groups{width:min(760px,100%);margin:0 auto;display:flex;flex-direction:column;gap:30px}.home-group h2{margin:0 0 12px;color:var(--muted);font-size:12.5px;font-weight:600;letter-spacing:.12em}a{text-decoration:none;color:inherit}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.cards a,.cards button{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;padding:18px 12px;color:var(--ink);background:linear-gradient(180deg,var(--card-2),var(--card));border:1px solid var(--line);border-radius:16px;font-size:15.5px;cursor:pointer;text-align:center;transition:border-color .18s,transform .12s,box-shadow .18s}.cards a:hover,.cards button:hover{border-color:var(--line-2)}.cards a:active,.cards button:active{transform:translateY(0)}.cards a .dot,.cards button .dot{position:absolute;top:11px;left:12px;width:7px;height:7px;background:var(--accent);border-radius:50%}.card-icon{font-size:27px;line-height:1}.vocab-entry{align-self:stretch;padding:15px;color:var(--ink);background:linear-gradient(90deg,#7c6cff29,#4dd6c11a);border:1px solid var(--line-2);border-radius:16px;font-size:16px;cursor:pointer;transition:box-shadow .2s}.vocab-entry:hover{box-shadow:0 0 24px var(--glow)}.vocab{min-height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr)}.vocab-body{overflow-y:auto;width:min(760px,100%);margin:0 auto;padding:18px}.vocab-count{color:var(--muted);font-size:12px;direction:ltr}.vocab-list{display:flex;flex-direction:column}.vocab-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 14px;padding:12px 4px;border-bottom:1px solid var(--line)}.vocab-head{display:flex;align-items:baseline;justify-content:space-between;gap:22px;min-width:0}.vocab-tools{display:flex;gap:6px}.vocab-tool{padding:5px 8px;background:var(--card-2);border:1px solid var(--line);border-radius:10px;font-size:14px;line-height:1;cursor:pointer}.vocab-tool:hover{border-color:var(--line-2);box-shadow:0 0 14px var(--glow)}.vocab-ex{grid-column:1 / -1;padding:9px 11px;color:var(--ink);background:var(--card-2);border:1px solid var(--line);border-radius:12px;font-size:15px;line-height:1.9}.vocab-ar{font-size:18px;line-height:2;font-weight:600;flex:0 0 auto}.vocab-en{color:var(--muted);font-size:14px;text-align:left;flex:1 1 auto;padding-left:6px;line-height:1.7}.vocab-row.known .vocab-ar{color:var(--accent)}.vocab-row.known:after{content:"✓";color:var(--accent);font-size:13px}.chat{height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.chat-top{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#0c0d12bf;border-bottom:1px solid var(--line)}.chat-title{color:var(--muted);font-size:14.5px;letter-spacing:.03em}main{min-height:0}.conversation{height:100%;overflow-y:auto}.messages{width:min(760px,100%);margin:0 auto;padding:24px 18px 40px}.message{width:fit-content;max-width:min(82%,590px);margin-bottom:12px;animation:rise .22s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.message.user{margin-right:auto}.message.assistant{margin-left:auto}.message p{margin:0;padding:11px 15px;border-radius:16px;background:var(--bot);border:1px solid var(--line);font-size:17px;line-height:1.75;white-space:pre-wrap}.message.user p{background:var(--me);border-color:#7c6cff40}.message.temporary{opacity:.55}.correction{margin-top:6px;padding:10px 13px;background:var(--card);border:1px solid var(--line);border-right:3px solid var(--red);border-radius:12px}.correction-sentence{margin:0 0 3px!important;padding:0!important;border:0!important;background:none!important;color:var(--green)!important;font-size:15px!important;font-weight:700}.correction-item{margin:2px 0 0!important;padding:0!important;border:0!important;background:none!important;color:var(--muted)!important;font-size:13px!important}.correction-item del{color:var(--red)}.correction-item strong{color:var(--green)}.review{margin-top:6px;display:flex;gap:8px}.review button{width:38px;height:38px;border:0;border-radius:50%;font-size:17px;cursor:pointer;color:#fff}.review .ok{background:var(--green)}.review .no{background:var(--red)}.composer{display:flex;flex-direction:column;align-items:center;gap:9px;padding:10px 14px calc(16px + env(safe-area-inset-bottom));background:#0c0d12bf;border-top:1px solid var(--line)}.status{height:20px;color:var(--muted);font-size:12px;text-align:center;letter-spacing:.02em}.input-row{width:min(720px,100%);margin:0 auto;display:flex;align-items:center;justify-content:center;gap:16px}.mode-toggle{width:42px;height:42px;display:grid;place-items:center;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:50%;font-size:17px;cursor:pointer;transition:border-color .18s,color .18s}.mode-toggle:hover{color:var(--ink);border-color:var(--line-2)}.mode-spacer{width:42px;flex:none}.mic-button{width:78px;height:78px;display:grid;place-items:center;border:0;border-radius:50%;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--accent),#5a4fd4);box-shadow:0 0 32px var(--glow),0 10px 26px #0000008c;transition:transform .12s,box-shadow .2s}.mic-button:hover{transform:scale(1.03)}.mic-button.active{background:linear-gradient(135deg,var(--red),#c9353c);box-shadow:0 0 34px #ff5c6466;animation:pulse 1.2s ease-out infinite}.mic-button:disabled{cursor:not-allowed;opacity:.38;box-shadow:none}.mic-icon{position:relative;width:14px;height:21px;border:2px solid currentColor;border-radius:8px}.mic-icon:before{content:"";position:absolute;right:-7px;bottom:-8px;width:24px;height:14px;border:2px solid currentColor;border-top:0;border-radius:0 0 13px 13px}.mic-icon:after{content:"";position:absolute;right:5px;bottom:-12px;width:2px;height:5px;background:currentColor}#typeRow #textInput{flex:1}#textInput{width:100%;min-width:0;padding:13px 16px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;outline:none;font-size:16px;transition:border-color .18s,box-shadow .18s}#textInput:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7c6cff2e}.sound-mark{height:58px;display:flex;align-items:center;gap:6px;opacity:.85}.sound-mark i{display:block;width:7px;height:22px;background:linear-gradient(180deg,var(--accent),var(--accent));border-radius:4px}.sound-mark i:nth-child(2),.sound-mark i:nth-child(4){height:42px}.sound-mark i:nth-child(3){height:58px}body[data-state=speaking] .sound-mark i{animation:wave .8s ease-in-out infinite alternate}@keyframes pulse{0%{box-shadow:0 0 #ff5c6466}to{box-shadow:0 0 0 16px #ff5c6400}}@keyframes wave{to{transform:scaleY(.5)}}@media (max-width: 560px){.message{max-width:90%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}:root{--arabic: "SF Arabic", "Geeza Pro", "Noto Naskh Arabic", serif;--glass: rgba(255, 255, 255, .045);--glass-line: rgba(255, 255, 255, .12)}body{background:#07080c;line-height:2.05}.cards a,.cards button,.vocab-entry,.home-group h2~.cards{background:var(--glass);border:1px solid var(--glass-line);border-radius:18px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.cards a:hover,.cards button:hover,.vocab-entry:hover{border-color:#7c6cff8c}.message,.write-block,.write-ask,.write-text,.vocab-row{background:var(--glass);border:1px solid var(--glass-line);border-radius:16px}.message p,.vocab-ar,.vocab-ex{line-height:2.3}.message p{font-size:1.22rem}.chat-title{color:var(--ink);font-weight:700}.deck{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.dcard{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 18px 14px;display:flex;flex-direction:column;gap:10px}.dcard.known{border-color:#4dd6a159}.dcard-word{margin:0;font-size:2rem;line-height:1.9;font-weight:700}.dcard-def{margin:0;color:var(--muted);font-size:1.05rem;line-height:1.95}.dcard-uses{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}.dcard-uses li{font-size:1.18rem;line-height:2.15;padding:9px 13px;background:var(--card-2);border-radius:12px;border-inline-start:3px solid var(--accent)}.dcard.known{border-color:#7c6cff59}.dcard-mic{align-self:flex-start;margin-top:6px;padding:7px 15px;border-radius:999px;border:1px solid var(--line-2);color:var(--muted);font-size:.95rem}.dcard-mic:hover{color:var(--ink);border-color:var(--accent)}.dcard-pic{width:100%;max-width:190px;height:150px;object-fit:contain;align-self:center;margin-bottom:2px}.dcard:has(.dcard-pic){padding-top:14px}.mode-toggle.on{color:var(--accent);border-color:var(--accent)}.chat{height:100dvh;grid-template-rows:auto minmax(0,1fr) auto}.chat>header,.chat>.input-row,.chat>footer{position:sticky;z-index:5}.chat>header{top:0}main{min-height:0;overflow:hidden}.input-row{position:sticky;bottom:0;background:#07080ceb;border-top:1px solid var(--line);padding-bottom:max(10px,env(safe-area-inset-bottom))}.vocab,.home{min-height:100dvh}@media (max-width: 640px){.messages{padding:16px 12px 24px}.deck{grid-template-columns:1fr;gap:12px}.dcard-word{font-size:1.8rem}.chat-title{font-size:1rem}}.deck-nav{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 14px;background:#07080c}.deck-btn{padding:10px 16px;border-radius:999px;border:1px solid var(--line-2);background:var(--card-2);color:var(--ink);font-size:.98rem;cursor:pointer}.deck-btn:disabled{opacity:.35;cursor:default}.deck-btn:not(:disabled):hover{border-color:var(--accent)}.deck-count{color:var(--muted);font-size:.95rem}.deck-stage{padding-bottom:40px}.deck-stage .dcard{border-radius:20px;padding:20px}.deck-stage .dcard-pic{max-width:240px;height:200px}.deck-stage .dcard-word{font-size:2.4rem;text-align:center}.tasreef{display:flex;flex-direction:column;gap:10px;margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}.tas-row{background:var(--card-2);border-radius:12px;padding:10px 13px}.tas-head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.tas-tag{color:var(--muted);font-size:.85rem;min-width:74px}.tas-word{font-size:1.35rem;font-weight:700;color:var(--accent)}.tas-ex{font-size:1.08rem;line-height:2.1}.deck-count{border:1px solid var(--line);background:var(--card-2);color:var(--muted);padding:9px 14px;border-radius:999px;cursor:pointer;font-size:.92rem}.deck-count:hover{color:var(--ink);border-color:var(--accent)}html,body{overflow-x:hidden;max-width:100%}.vocab-body,.messages,.home-groups{width:min(760px,100%);margin-inline:auto;max-width:100%}.deck-stage,.deck-nav,.dcard,.tas-row{max-width:100%;min-width:0}.dcard-word,.tas-word,.tas-ex,.dcard-def{overflow-wrap:anywhere}.veiled{filter:blur(9px);-webkit-user-select:none;user-select:none;transition:filter .15s ease}.tas-row.guess{cursor:pointer}.tas-row.guess:hover{border-inline-start:3px solid var(--accent)}.dcard{position:relative}.dcard-done{position:absolute;top:14px;inset-inline-start:14px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:var(--card-2);color:var(--muted);font-size:1.15rem;cursor:pointer;z-index:2}.dcard-done.on{color:var(--green);border-color:var(--green)}.deck-btn.on-filter{color:var(--accent);border-color:var(--accent)}.deck-empty{text-align:center;font-size:1.3rem;padding:40px 0 10px}.deck-tabs{display:flex;gap:8px;padding:12px 0 4px}.deck-tab{flex:1;padding:9px 6px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:.95rem;cursor:pointer}.deck-tab.on{color:var(--ink);border-color:var(--accent);background:var(--card-2)}
