@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap");:root{--violet-deep:#5a3de6;--violet:#6c4dff;--violet-light:#8f70ff;--sand:#f4f0ff;--cream:#fffdff;--ink:#1b1530;--muted:#6f6685;--bubble-user:#6c4dff;--bubble-bot:#fff}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 80% -10%,rgba(143,112,255,.22),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(108,77,255,.14),transparent 55%),var(--sand);-webkit-font-smoothing:antialiased}.app,body{min-height:100vh}.app{max-width:760px;margin:0 auto;display:flex;flex-direction:column}.header{display:flex;align-items:center;gap:13px;padding:22px 20px 16px}.crest{width:46px;height:46px;border-radius:50%;object-fit:cover;background:linear-gradient(140deg,var(--violet-light),var(--violet));display:grid;place-items:center;color:#fff;font-weight:800;font-size:20px;box-shadow:0 4px 12px rgba(108,77,255,.35)}.header h1{font-size:19px;font-weight:800;letter-spacing:-.01em}.header .sub{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-top:2px;font-weight:500}.status-dot{width:7px;height:7px;border-radius:50%;background:#34c759;flex:none}.chat{flex:1 1;overflow-y:auto;padding:8px 18px 16px;flex-direction:column;gap:14px}.chat,.row{display:flex}.row.user{justify-content:flex-end}.row.bot{justify-content:flex-start}.bubble{max-width:82%;padding:15px 18px;border-radius:22px;font-size:15.5px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;text-wrap:pretty}.row.user .bubble{background:var(--bubble-user);color:#fff;border-bottom-right-radius:7px}.row.bot .bubble{background:var(--bubble-bot);color:var(--ink);border-bottom-left-radius:7px;box-shadow:0 8px 26px rgba(80,50,170,.09)}.rich{white-space:normal}.rich .md-p{margin:0 0 9px}.rich .md-p:last-child{margin-bottom:0}.rich .md-list{margin:6px 0 9px;padding-left:20px}.rich .md-list:last-child{margin-bottom:0}.rich .md-list li{margin:3px 0}.rich strong{font-weight:700}.sources{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.src-btn{display:inline-block;background:var(--violet);color:#fff;text-decoration:none;font-size:13px;font-weight:700;padding:9px 15px;border-radius:999px;box-shadow:0 4px 12px rgba(108,77,255,.28);transition:background .15s,transform .1s}.src-btn:hover{background:var(--violet-deep)}.src-btn:active{transform:scale(.97)}.gyg-wrap{margin-top:12px}.gyg-wrap [data-gyg-widget]{min-height:60px}.typing{display:inline-flex;gap:5px;padding:4px 2px}.typing span{width:8px;height:8px;border-radius:50%;background:var(--violet-light);animation:blink 1.3s ease-in-out infinite both}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.welcome{display:flex;flex-direction:column;gap:16px;padding:4px 18px 12px}.welcome-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#9a93af;font-weight:700}.cat-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.cat{display:flex;flex-direction:column;text-align:left;cursor:pointer;background:#fff;border:1px solid rgba(108,77,255,.08);border-radius:18px;padding:10px;box-shadow:0 4px 16px rgba(80,50,170,.07);transition:transform .12s,box-shadow .12s;font-family:inherit}.cat:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(80,50,170,.13)}.cat:active{transform:translateY(0)}.cat-img{display:flex;align-items:center;justify-content:center;height:78px;border-radius:14px;background:repeating-linear-gradient(135deg,#e7ddff,#e7ddff 9px,#f1ecff 0,#f1ecff 18px)}.cat-mono{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:#9a8fd6}.cat-mono.light{color:hsla(0,0%,100%,.9)}.cat-label{font-size:15px;font-weight:700;color:var(--ink);padding:11px 6px 4px}.news{display:flex;align-items:center;gap:14px;border-radius:20px;padding:16px;background:linear-gradient(120deg,#6c4dff,#8f70ff);box-shadow:0 10px 26px rgba(108,77,255,.28)}.news-body{flex:1 1;min-width:0}.news-tag{display:inline-block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#6c4dff;background:#fff;padding:3px 9px;border-radius:7px}.news-title{font-size:16px;font-weight:800;color:#fff;margin-top:9px;line-height:1.2}.news-sub{font-size:12.5px;color:hsla(0,0%,100%,.82);margin-top:3px}.news-img{width:58px;height:58px;border-radius:14px;flex:none;justify-content:center;background:repeating-linear-gradient(135deg,hsla(0,0%,100%,.3),hsla(0,0%,100%,.3) 7px,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 14px)}.composer,.news-img{display:flex;align-items:center}.composer{gap:8px;margin:12px 18px 18px;padding:6px 6px 6px 18px;position:-webkit-sticky;position:sticky;bottom:12px;background:#fff;border-radius:999px;border:1px solid rgba(108,77,255,.12);box-shadow:0 6px 22px rgba(80,50,170,.12)}.composer input{flex:1 1;padding:12px 4px;border:none;background:transparent;font-size:16px;font-family:inherit;color:var(--ink);outline:none}.composer input::placeholder{color:#a49db8}.composer button{border:none;background:var(--violet);color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;flex:none;display:grid;place-items:center;box-shadow:0 4px 12px rgba(108,77,255,.4);transition:transform .1s,background .15s}.composer button:hover{background:var(--violet-deep)}.composer button:active{transform:scale(.94)}.composer button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.footer-note{text-align:center;font-size:11.5px;color:var(--muted);padding:0 18px 14px}.footer-note a{color:var(--violet);text-decoration:none;font-weight:600}.footer-note a:hover{text-decoration:underline}.feedback{margin-top:10px;display:flex;gap:8px;align-items:center}.fb-btn{border:1px solid rgba(108,77,255,.18);background:rgba(108,77,255,.05);color:var(--violet-deep);font-size:12.5px;font-family:inherit;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;transition:all .15s}.fb-btn:hover{background:var(--violet);color:#fff;border-color:var(--violet)}.fb-thanks{font-size:12.5px;color:var(--muted);font-style:italic}.page{max-width:720px;margin:0 auto;padding:28px 22px 60px}.page h2{font-size:24px;font-weight:800;margin-bottom:6px}.page p.lead{color:var(--muted);margin-bottom:22px;line-height:1.5}.card{background:#fff;border:1px solid rgba(108,77,255,.1);border-radius:18px;padding:20px;box-shadow:0 4px 16px rgba(80,50,170,.07);margin-bottom:16px}.field{margin-bottom:14px}.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:11px 13px;border:1px solid rgba(108,77,255,.22);border-radius:12px;font-size:14.5px;font-family:inherit;outline:none}.field textarea{min-height:120px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--violet-light);box-shadow:0 0 0 3px rgba(143,112,255,.22)}.btn-primary{background:var(--violet);color:#fff;border:none;padding:12px 22px;border-radius:999px;font-size:15px;font-family:inherit;font-weight:700;cursor:pointer}.btn-primary:hover{background:var(--violet-deep)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-small{font-size:12.5px;padding:6px 12px;border-radius:9px;cursor:pointer;border:1px solid rgba(108,77,255,.25);background:#fff;margin-right:8px;font-family:inherit}.btn-approve{border-color:#1f9d55;color:#1f9d55}.btn-reject{border-color:#c0392b;color:#c0392b}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px;margin-bottom:22px}.stat-box{background:#fff;border-radius:16px;padding:16px;border:1px solid rgba(108,77,255,.1)}.stat-box .num{font-size:28px;font-weight:800;color:var(--violet-deep)}.stat-box .lab{font-size:12.5px;color:var(--muted);margin-top:2px}table.daily{width:100%;border-collapse:collapse;font-size:14px}table.daily td,table.daily th{text-align:left;padding:8px 6px;border-bottom:1px solid rgba(108,77,255,.08)}.success-msg{color:#1f9d55;font-weight:600}.error-msg{color:#c0392b}.back-link{display:inline-block;margin-bottom:18px;color:var(--violet);text-decoration:none;font-size:14px}.auth-screen{min-height:100vh;justify-content:center;padding:24px}.auth-card,.auth-screen{display:flex;align-items:center}.auth-card{width:100%;max-width:380px;background:#fff;border-radius:26px;padding:38px 30px 26px;box-shadow:0 20px 55px rgba(80,50,170,.18);text-align:center;flex-direction:column}.auth-badge{width:66px;height:66px;border-radius:20px;background:linear-gradient(140deg,var(--violet-light),var(--violet));display:grid;place-items:center;box-shadow:0 10px 22px rgba(108,77,255,.38);margin-bottom:18px}.auth-badge svg{width:30px;height:30px;color:#fff}.auth-title{font-size:23px;font-weight:800;letter-spacing:-.01em}.auth-sub{color:var(--muted);font-size:13.5px;margin:5px 0 24px}.auth-input{width:100%;padding:13px 16px;border:1px solid rgba(108,77,255,.22);border-radius:14px;font-size:15px;font-family:inherit;color:var(--ink);outline:none;text-align:center;letter-spacing:.02em}.auth-input::placeholder{color:#a49db8;letter-spacing:normal}.auth-input:focus{border-color:var(--violet-light);box-shadow:0 0 0 3px rgba(143,112,255,.22)}.auth-btn{width:100%;margin-top:14px;background:var(--violet);color:#fff;border:none;padding:13px;border-radius:999px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s}.auth-btn:hover{background:var(--violet-deep)}.auth-btn:active{transform:scale(.98)}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-error{color:#c0392b;font-size:13px;margin-top:12px}.auth-back{margin-top:20px;color:var(--muted);text-decoration:none;font-size:13px}.auth-back:hover{color:var(--violet)}@media (min-width:720px){.app{max-width:880px;padding:0 8px}.header{padding:30px 12px 18px;gap:14px}.crest{width:52px;height:52px;font-size:22px}.header h1{font-size:23px}.header .sub{font-size:14px}.chat{padding:10px 12px 18px}.bubble{max-width:78%;font-size:16px;padding:16px 20px}.welcome{padding:8px 12px 14px;gap:18px}.cat-grid{grid-template-columns:repeat(4,1fr);gap:16px}.cat-img{height:110px}.cat-label{font-size:16px}.news{padding:22px 26px;gap:18px}.news-title{font-size:19px}.news-sub{font-size:14px}.news-img{width:78px;height:78px;border-radius:16px}.composer{margin:14px 12px 22px;padding:8px 8px 8px 24px}.composer input{font-size:17px}.composer button{width:48px;height:48px}}