:root{--ink:#0a0708;--ink-deep:#060405;--surface:#120c0e;--bubble-bot:#1b1215;--red:#e10f2f;--red-light:#ff4d5e;--red-deep:#7d0f1e;--text:#fff;--text-2:#d9ced1;--text-3:#8d7c81;--border:#ff4d5e29;--border-soft:#ffffff0d;--glow:#e10f2f3d;--font-display:"Space Grotesk", "Inter", sans-serif;--font-body:"Inter", system-ui, sans-serif;--ease-out-quint:cubic-bezier(.23, 1, .32, 1);--ease-out-cubic:cubic-bezier(.215, .61, .355, 1);--ease-pop:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--text);background:var(--ink);-webkit-font-smoothing:antialiased;margin:0}.page{background:radial-gradient(58% 42% at 50% -4%, #e10f2f24, transparent 70%), radial-gradient(40% 30% at 88% 100%, #ff4d5e0d, transparent 70%), var(--ink);justify-content:center;align-items:center;min-height:100dvh;padding:0;animation:.9s ease-out both page-light;display:flex;position:relative;overflow:hidden}@keyframes page-light{0%{background-color:var(--ink-deep)}to{background-color:var(--ink)}}.cursor-glow{pointer-events:none;z-index:0;background:radial-gradient(360px circle at var(--mx,50vw) var(--my,30vh), #e10f2f17, #e10f2f08 45%, transparent 70%);transition:opacity .4s;position:fixed;inset:0}.chat-shell{z-index:1;background:var(--surface);width:100%;height:100dvh;animation:shell-enter .72s var(--ease-out-quint) both;flex-direction:column;display:flex;position:relative;overflow:hidden}@keyframes shell-enter{0%{opacity:0;transform:translateY(26px)scale(.965)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width>=560px){.page{padding:32px 16px}.chat-shell{border:1px solid var(--border);max-width:480px;height:min(760px,100dvh - 64px);box-shadow:0 0 0 1px #ffffff05 inset, 0 24px 80px #0009, 0 0 90px -30px var(--glow);border-radius:22px;transition:box-shadow .4s,border-color .4s}.chat-shell:hover{border-color:#ff4d5e47;box-shadow:inset 0 0 0 1px #ffffff05,0 24px 80px #0009,0 0 110px -26px #e10f2f57}}.chat-header{border-bottom:1px solid var(--border-soft);background:linear-gradient(#251418d9,#25141859);align-items:center;gap:12px;padding:14px 20px;display:flex}.brand-copy{animation:rise-in .5s var(--ease-out-quint) .26s both;flex-direction:column;gap:2px;display:flex}@keyframes rise-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.brand-name{font-family:var(--font-display);letter-spacing:.01em;font-size:16px;font-weight:600}.brand-logo{filter:drop-shadow(0 2px 10px #e10f2f59);align-self:flex-start;width:auto;height:24px}.brand-sub{color:var(--text-3);align-items:center;gap:6px;font-size:12.5px;display:flex}.status-dot{background:var(--red-light);border-radius:50%;width:7px;height:7px;animation:2.6s ease-in-out infinite status-breathe}@keyframes status-breathe{0%,to{box-shadow:0 0 #ff4d5e73}50%{box-shadow:0 0 0 5px #ff4d5e00}}.robot-badge{animation:robot-pop .48s var(--ease-pop) .12s both;background:linear-gradient(150deg,#241318,#140b0e);border:1px solid #ff4d5e4d;border-radius:14px;flex-shrink:0;place-items:center;display:grid;box-shadow:0 4px 18px -6px #e10f2f80}@keyframes robot-pop{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}.robot{overflow:visible}.robot-body{transform-box:fill-box;transform-origin:50% 70%;animation:3.4s ease-in-out infinite robot-bob}@keyframes robot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.4px)}}.antenna-tip{transform-box:fill-box;transform-origin:50%;animation:2.8s ease-in-out infinite antenna-pulse}@keyframes antenna-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.eye{transform-box:fill-box;transform-origin:50%;animation:5.2s ease-in-out infinite robot-blink}@keyframes robot-blink{0%,93%,to{transform:scaleY(1)}95.5%{transform:scaleY(.12)}98%{transform:scaleY(1)}}.robot-badge.thinking .robot-body{animation:1.1s ease-in-out infinite robot-think}@keyframes robot-think{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-1.6px)rotate(-2.6deg)}75%{transform:translateY(-.6px)rotate(2.6deg)}}.robot-badge.thinking .robot-eyes{transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out infinite eyes-dart}@keyframes eyes-dart{0%,to{transform:translate(0)}30%{transform:translate(-1.8px)translateY(-.8px)}70%{transform:translate(1.8px)translateY(-.8px)}}.robot-badge.thinking .antenna-tip{animation:.7s ease-in-out infinite antenna-pulse}.robot-badge.thinking .robot-smile{d:path("M20 34.8c2 -1 6 -1 8 0")}.messages{scrollbar-width:thin;scrollbar-color:#2a1c20 transparent;flex-direction:column;flex:1;gap:10px;padding:22px 18px;display:flex;overflow-y:auto}.bubble{max-width:82%;animation:bubble-in .26s var(--ease-out-quint) both;will-change:transform;padding:11px 15px;font-size:14.5px;line-height:1.55}.bubble-bot{background:var(--bubble-bot);border:1px solid var(--border-soft);color:var(--text-2);transform-origin:0 100%;border-radius:16px 16px 16px 5px;align-self:flex-start}.bubble-user{background:linear-gradient(135deg, var(--red), var(--red-light));color:#fff;transform-origin:100% 100%;border-radius:16px 16px 5px;align-self:flex-end;box-shadow:0 6px 20px -8px #e10f2f8c}@keyframes bubble-in{0%{opacity:0;transform:translateY(9px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.typing-row{animation:bubble-in .22s var(--ease-out-quint) both;align-items:flex-end;gap:8px;display:flex}.typing-row .robot-badge{border-radius:10px;animation:none}.typing{align-items:center;gap:5px;padding:14px 16px;display:flex}.dot{background:var(--text-3);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite dot-bounce}.dot:nth-child(2){animation-delay:.15s}.dot:nth-child(3){animation-delay:.3s}@keyframes dot-bounce{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.assignment-card{max-width:92%;animation:card-in .4s var(--ease-out-quint) both, card-breathe 4.2s ease-in-out .52s infinite;will-change:transform;background:linear-gradient(135deg,#ff4d5e99,#e10f2f1f 45%,#ff4d5e6b);border-radius:18px;align-self:flex-start;padding:1px}.assignment-inner{background:radial-gradient(120% 90% at 15% 0,#e10f2f2b,#0000 60%),#150c0f;border-radius:17px;flex-direction:column;gap:4px;padding:18px 20px 16px;display:flex}.assignment-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--red-light);font-size:10.5px;font-weight:600}.assignment-name{font-family:var(--font-display);letter-spacing:.01em;color:var(--text);font-size:26px;font-weight:700}.assignment-meta{color:var(--text-3);font-size:12.5px}.assignment-instructions{border-top:1px solid var(--border-soft);color:var(--text-2);margin:10px 0 0;padding-top:12px;font-size:13.5px;line-height:1.6}@keyframes card-in{0%{opacity:0;transform:translateY(12px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes card-breathe{0%,to{box-shadow:0 0 34px -12px var(--glow)}50%{box-shadow:0 0 52px -10px #e10f2f66}}.dock{padding:14px 18px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border-soft);background:linear-gradient(#2514181f,#25141899);min-height:72px}.quick-replies{flex-wrap:wrap;justify-content:flex-end;gap:9px;display:flex}.quick-reply{appearance:none;color:var(--red-light);font-family:var(--font-body);cursor:pointer;animation:bubble-in .22s var(--ease-out-cubic) both;background:#e10f2f12;border:1px solid #ff4d5e66;border-radius:999px;padding:10px 16px;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s,transform .12s}.quick-reply:active{transform:scale(.97)}.quick-reply:focus-visible,.send-button:focus-visible,.text-input:focus-visible{outline:2px solid var(--red-light);outline-offset:2px}@media (hover:hover) and (pointer:fine){.quick-reply:hover{border-color:var(--red-light);background:#e10f2f29}}.text-dock{gap:10px;display:flex}.text-input{border:1px solid var(--border-soft);background:var(--bubble-bot);color:var(--text);font-family:var(--font-body);border-radius:14px;flex:1;padding:12px 16px;font-size:14.5px;transition:border-color .15s}.text-input::placeholder{color:var(--text-3)}.text-input:focus{border-color:#ff4d5e80}.send-button{background:linear-gradient(135deg, var(--red), var(--red-light));color:#fff;cursor:pointer;border:none;border-radius:14px;place-items:center;width:46px;transition:opacity .15s,transform .12s;display:grid}.send-button:disabled{opacity:.35;cursor:default}.send-button:not(:disabled):active{transform:scale(.94)}.admin-login-wrap{background:radial-gradient(58% 42% at 50% -4%, #e10f2f24, transparent 70%), var(--ink);justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;animation:.9s ease-out both page-light;display:flex}.admin-login{background:var(--surface);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:0 24px 80px #0009, 0 0 90px -30px var(--glow);animation:shell-enter .72s var(--ease-out-quint) both;border-radius:22px;flex-direction:column;gap:16px;padding:32px 28px 26px;display:flex}.admin-login-head{text-align:center;flex-direction:column;align-items:center;gap:10px;margin-bottom:4px;display:flex}.admin-login-title{font-family:var(--font-display);letter-spacing:.01em;animation:rise-in .5s var(--ease-out-quint) .2s both;align-items:center;gap:10px;margin:0;font-size:22px;font-weight:700;display:flex}.admin-login-logo{filter:drop-shadow(0 3px 14px #e10f2f66);width:auto;height:30px}.admin-login-word{color:var(--text-2);font-size:19px;font-weight:600}.admin-login-sub{color:var(--text-3);animation:rise-in .5s var(--ease-out-quint) .28s both;margin:0;font-size:13px}.admin-tabs{background:var(--ink-deep);border:1px solid var(--border-soft);border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.admin-tab{appearance:none;color:var(--text-3);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:9px 0;font-size:13.5px;font-weight:500;transition:background-color .18s,color .18s}.admin-tab.active{background:var(--bubble-bot);color:var(--text);box-shadow:0 2px 10px -4px #e10f2f66}.admin-field{color:var(--text-3);flex-direction:column;gap:6px;font-size:12.5px;font-weight:500;display:flex}.admin-submit{appearance:none;background:linear-gradient(135deg, var(--red), var(--red-light));color:#fff;font-family:var(--font-body);cursor:pointer;border:none;border-radius:14px;margin-top:4px;padding:13px 16px;font-size:14.5px;font-weight:600;transition:transform .12s,opacity .15s,box-shadow .2s;box-shadow:0 8px 26px -10px #e10f2f99}.admin-submit:disabled{opacity:.5;cursor:default}.admin-submit:not(:disabled):active{transform:scale(.98)}@media (hover:hover) and (pointer:fine){.admin-submit:not(:disabled):hover{box-shadow:0 10px 32px -10px #e10f2fcc}}.admin-alert,.admin-notice{animation:bubble-in .24s var(--ease-out-quint) both;border-radius:12px;margin:0;padding:11px 14px;font-size:13px;line-height:1.5}.admin-alert{color:var(--red-light);background:#e10f2f17;border:1px solid #ff4d5e4d}.admin-alert code{color:var(--text-2);font-size:12px}.admin-notice{border:1px solid var(--border-soft);color:var(--text-2);background:#ffffff0a}.admin-back{color:var(--text-3);align-self:center;font-size:13px;text-decoration:none;transition:color .15s}.admin-back:hover{color:var(--red-light)}.admin-panel{flex-direction:column;gap:22px;max-width:980px;min-height:100dvh;margin:0 auto;padding:28px 20px 60px;animation:.7s ease-out both page-light;display:flex}.admin-header{animation:rise-in .5s var(--ease-out-quint) both;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-header-brand{align-items:center;gap:12px;display:flex}.admin-header-brand>div{flex-direction:column;gap:2px;display:flex}.admin-header-line{align-items:center;gap:8px;display:flex}.admin-header-logo{filter:drop-shadow(0 2px 8px #e10f2f4d);width:auto;height:17px}.admin-header-tag{color:var(--red-light);letter-spacing:.12em;text-transform:uppercase;border:1px solid #ff4d5e59;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.admin-header-sub{color:var(--text-3);font-size:12.5px}.admin-signout{appearance:none;border:1px solid var(--border-soft);color:var(--text-3);font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:999px;padding:9px 16px;font-size:13px;transition:border-color .15s,color .15s}.admin-signout:hover{color:var(--red-light);border-color:#ff4d5e66}.admin-demo-note{color:var(--text-3);animation:rise-in .5s var(--ease-out-quint) 80ms both;background:#e10f2f0d;border:1px dashed #ff4d5e47;border-radius:14px;margin:0;padding:12px 16px;font-size:13px;line-height:1.55}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.admin-stat{background:var(--surface);border:1px solid var(--border-soft);animation:rise-in .5s var(--ease-out-quint) both;border-radius:18px;flex-direction:column;gap:8px;padding:18px 20px;transition:border-color .25s,box-shadow .25s;display:flex}.admin-stat:nth-child(2){animation-delay:70ms}.admin-stat:nth-child(3){animation-delay:.14s}.admin-stat:nth-child(4){animation-delay:.21s}@media (hover:hover) and (pointer:fine){.admin-stat:hover{box-shadow:0 0 40px -18px var(--glow);border-color:#ff4d5e40}}.admin-stat-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:600}.admin-stat-value{font-family:var(--font-display);color:var(--text);font-size:30px;font-weight:700}.admin-stat-value small{color:var(--text-3);font-size:17px;font-weight:600}.admin-stat-foot{color:var(--text-3);font-size:12px}.admin-progress{background:var(--ink-deep);border-radius:999px;height:6px;overflow:hidden}.admin-progress-fill{background:linear-gradient(90deg, var(--red), var(--red-light));height:100%;transition:width .6s var(--ease-out-quint);border-radius:999px;box-shadow:0 0 12px #e10f2f80}.admin-section{animation:rise-in .5s var(--ease-out-quint) .2s both;flex-direction:column;gap:12px;display:flex}.admin-section-title{font-family:var(--font-display);letter-spacing:.01em;margin:0;font-size:16px;font-weight:600}.admin-empty{border:1px dashed var(--border-soft);text-align:center;color:var(--text-3);border-radius:16px;margin:0;padding:22px;font-size:13.5px}.admin-reasons{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.admin-reason{background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;font-size:13.5px;display:flex}.admin-chip{color:var(--red-light);white-space:nowrap;background:#e10f2f17;border:1px solid #ff4d5e4d;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:500}.admin-reason-text{min-width:160px;color:var(--text-2);flex:1}.admin-reason-to{color:var(--text-3);white-space:nowrap;font-size:12.5px}.admin-table-wrap{border:1px solid var(--border-soft);background:var(--surface);border-radius:16px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13.5px}.admin-table th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--border-soft);padding:12px 16px;font-size:11px;font-weight:600}.admin-table td{color:var(--text-2);border-bottom:1px solid #ffffff08;padding:11px 16px}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr{transition:background-color .15s}@media (hover:hover) and (pointer:fine){.admin-table tbody tr:hover{background:#e10f2f0a}}.admin-td-strong{color:var(--text);font-weight:600}.admin-header-actions{align-items:center;gap:8px;display:flex}.admin-refresh{appearance:none;color:var(--red-light);font-family:var(--font-body);cursor:pointer;background:#e10f2f14;border:1px solid #ff4d5e59;border-radius:999px;padding:9px 16px;font-size:13px;transition:background-color .15s,border-color .15s,opacity .15s}.admin-refresh:hover:not(:disabled){border-color:var(--red-light);background:#e10f2f29}.admin-refresh:disabled{opacity:.5;cursor:default}.admin-loading{place-items:center;padding:80px 0;display:grid}.admin-charts{grid-template-columns:1.6fr 1fr;gap:14px;display:grid}@media (width<=720px){.admin-charts{grid-template-columns:1fr}}.admin-card{background:var(--surface);border:1px solid var(--border-soft);animation:rise-in .5s var(--ease-out-quint) both;border-radius:18px;flex-direction:column;gap:4px;padding:20px 22px 22px;display:flex}.admin-card-wide{grid-column:1/-1}.admin-card-sub{color:var(--text-3);margin:0 0 8px;font-size:12.5px}.chart-donut{flex-wrap:wrap;align-items:center;gap:22px;padding-top:6px;display:flex}.chart-donut svg{animation:donut-in .56s var(--ease-out-quint) .12s both}@keyframes donut-in{0%{opacity:0;transform:scale(.9)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.donut-seg{transition:stroke-width .2s}.donut-seg:hover{stroke-width:18px}.donut-total{font-family:var(--font-display);fill:var(--text);font-size:30px;font-weight:700}.donut-caption{letter-spacing:.12em;text-transform:uppercase;fill:var(--text-3);font-size:10px}.chart-legend{flex-direction:column;gap:10px;min-width:140px;margin:0;padding:0;list-style:none;display:flex}.chart-legend li{align-items:center;gap:9px;font-size:13.5px;display:flex}.legend-dot{border-radius:4px;flex-shrink:0;width:11px;height:11px}.legend-name{color:var(--text-2);flex:1}.legend-value{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:12.5px}.chart-bars{align-items:flex-end;gap:5px;height:150px;padding-top:18px;display:flex}.bar-col{flex-direction:column;flex:1;align-items:center;min-width:0;height:100%;display:flex}.bar-value{color:var(--text-2);font-variant-numeric:tabular-nums;height:14px;font-size:11px;line-height:14px}.bar-track{flex:1;justify-content:center;align-items:flex-end;width:100%;max-width:26px;display:flex}.bar-fill{background:linear-gradient(180deg, var(--red-light), var(--red));width:100%;min-height:0;box-shadow:0 0 14px -4px var(--glow);transform-origin:bottom;animation:bar-grow .62s var(--ease-out-quint) both;border-radius:5px 5px 2px 2px}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.bar-dow{color:var(--text-3);text-transform:uppercase;margin-top:7px;font-size:10.5px}.chart-countries{flex-direction:column;gap:11px;margin:0;padding:6px 0 0;list-style:none;display:flex}.country-row{align-items:center;gap:10px;font-size:13.5px;display:flex}.country-flag{text-align:center;flex-shrink:0;width:22px;font-size:17px}.country-name{width:108px;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;overflow:hidden}.country-bar-track{background:#ffffff0d;border-radius:999px;flex:1;height:9px;overflow:hidden}.country-bar-fill{background:linear-gradient(90deg, var(--red-deep), var(--red));transform-origin:0;height:100%;animation:bar-grow-x .64s var(--ease-out-quint) both;border-radius:999px;display:block}@keyframes bar-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.country-count{text-align:right;width:34px;color:var(--text-3);font-variant-numeric:tabular-nums;flex-shrink:0}.td-country{white-space:nowrap}@media (prefers-reduced-motion:reduce){.page,.chat-shell,.bubble,.typing-row,.quick-reply,.assignment-card,.brand-copy,.robot-badge,.robot-body,.admin-login-wrap,.admin-login,.admin-login-title,.admin-login-sub,.admin-panel,.admin-header,.admin-demo-note,.admin-stat,.admin-section,.admin-alert,.admin-notice,.admin-card,.chart-donut svg,.bar-fill,.country-bar-fill,.robot-eyes,.antenna-tip,.eye,.status-dot,.dot{animation:none}.cursor-glow{display:none}}
