@import"https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,400&display=swap";:root{--cf-bg: #0c0c10;--cf-surface: #161620;--cf-surface-raised: #1c1c28;--cf-indigo: #4f46e5;--cf-indigo-hover: #4338ca;--cf-indigo-dim: rgba(79, 70, 229, .15);--cf-indigo-border: rgba(79, 70, 229, .25);--cf-indigo-glow: rgba(79, 70, 229, .5);--cf-border: rgba(255, 255, 255, .07);--cf-border-med: rgba(255, 255, 255, .1);--cf-text: rgba(255, 255, 255, .88);--cf-text-secondary: rgba(255, 255, 255, .38);--cf-text-muted: rgba(255, 255, 255, .22);--cf-green-bg: rgba(34, 197, 94, .1);--cf-green-border: rgba(34, 197, 94, .2);--cf-green-text: #4ade80;--cf-radius-sm: 8px;--cf-radius: 12px;--cf-radius-lg: 14px;--cf-radius-pill: 99px}.cf-root{display:flex;flex-direction:column;height:100dvh;background:var(--cf-bg);font-family:DM Sans,system-ui,sans-serif;position:relative;overflow:hidden;color:var(--cf-text)}.cf-grid-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:32px 32px;pointer-events:none;z-index:0}.cf-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--cf-border);background:var(--cf-bg);flex-shrink:0}.cf-brand{display:flex;align-items:center;gap:10px}.cf-brand-mark{width:32px;height:32px;border-radius:9px;background:var(--cf-indigo);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 0 16px var(--cf-indigo-glow)}.cf-brand-name{font-family:Syne,sans-serif;font-weight:700;font-size:15px;color:#fff;letter-spacing:-.3px}.cf-brand-tag{font-size:10px;color:#818cf8;background:#6366f11f;border:1px solid rgba(99,102,241,.2);padding:2px 7px;border-radius:var(--cf-radius-pill);font-weight:500;letter-spacing:.3px}.cf-hdr-right,.cf-user-row{display:flex;align-items:center;gap:8px}.cf-user-email{font-size:12px;color:var(--cf-text-secondary);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none}@media (min-width: 480px){.cf-user-email{display:block}}.cf-icon-btn{width:32px;height:32px;border-radius:var(--cf-radius-sm);border:1px solid var(--cf-border);background:#ffffff0a;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--cf-text-secondary);transition:all .15s}.cf-icon-btn:hover{border-color:var(--cf-border-med);color:var(--cf-text);background:#ffffff12}.cf-ghost-btn{height:32px;padding:0 12px;border-radius:var(--cf-radius-sm);border:1px solid var(--cf-border);background:#ffffff0a;color:var(--cf-text-secondary);font-size:13px;cursor:pointer;font-family:inherit;transition:all .15s}.cf-ghost-btn:hover{color:var(--cf-text);background:#ffffff12}.cf-signin-btn{height:32px;padding:0 14px;border-radius:var(--cf-radius-sm);border:1px solid var(--cf-indigo-border);background:var(--cf-indigo-dim);color:#818cf8;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s}.cf-signin-btn:hover{background:#4f46e540;border-color:#6366f166}.cf-msgs-scroll{flex:1;overflow-y:auto;padding:20px 16px 12px;position:relative;z-index:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.cf-msgs-inner{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.cf-status-line{display:flex;align-items:center;gap:8px;padding-bottom:2px}.cf-status-dot{width:6px;height:6px;border-radius:50%;background:#6366f1;flex-shrink:0;animation:cf-pulse 2s infinite}@keyframes cf-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.cf-status-label{font-size:11px;color:#6366f1;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.cf-chips{display:flex;flex-wrap:wrap;gap:7px;padding-bottom:4px}.cf-chip{padding:7px 14px;border-radius:var(--cf-radius-pill);border:1px solid rgba(255,255,255,.1);font-size:12px;color:var(--cf-text-secondary);background:#ffffff08;cursor:pointer;font-family:inherit;transition:all .2s}.cf-chip:hover{border-color:#6366f1;color:#a5b4fc;background:#6366f114}.cf-msg-row{display:flex}.cf-msg-user{justify-content:flex-end}.cf-msg-ai{justify-content:flex-start}.cf-bubble{max-width:75%;padding:11px 15px;font-size:14px;line-height:1.6;white-space:pre-wrap}.cf-bubble-ai{background:var(--cf-surface);border:1px solid var(--cf-border);color:var(--cf-text);border-radius:16px 16px 16px 4px}.cf-bubble-user{background:var(--cf-indigo);color:#fff;border-radius:16px 16px 4px}.cf-bubble-typing{display:flex;align-items:center;gap:5px;padding:14px 16px}.cf-dot{width:5px;height:5px;border-radius:50%;background:#ffffff40;animation:cf-blink 1.3s infinite}.cf-dot:nth-child(2){animation-delay:.2s}.cf-dot:nth-child(3){animation-delay:.4s}@keyframes cf-blink{0%,80%,to{opacity:.25}40%{opacity:.9}}.cf-search-bar{display:flex;align-items:center;gap:9px;padding:8px 12px;background:#6366f112;border:1px solid rgba(99,102,241,.15);border-radius:10px;max-width:360px}.cf-search-spinner{width:14px;height:14px;border:1.5px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;animation:cf-spin .7s linear infinite;flex-shrink:0}@keyframes cf-spin{to{transform:rotate(360deg)}}.cf-search-text{font-size:12px;color:#818cf8}.cf-tray{max-width:680px;width:100%;margin:0 auto;padding:0 16px 8px;position:relative;z-index:2}.cf-match-card{background:#13131e;border:1px solid var(--cf-indigo-border);border-radius:var(--cf-radius-lg);overflow:hidden}.cf-match-inner{padding:13px 14px;display:flex;align-items:flex-start;gap:11px}.cf-match-icon{width:38px;height:38px;border-radius:var(--cf-radius-sm);background:var(--cf-indigo-dim);border:1px solid var(--cf-indigo-border);display:flex;align-items:center;justify-content:center;color:#818cf8;flex-shrink:0}.cf-match-title{font-size:14px;font-weight:500;color:#fff;font-family:Syne,sans-serif}.cf-match-meta{font-size:12px;color:var(--cf-text-secondary);margin-top:3px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.cf-capitalize{text-transform:capitalize}.cf-match-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--cf-radius-pill);font-size:11px;font-weight:500;background:var(--cf-green-bg);color:var(--cf-green-text);border:1px solid var(--cf-green-border)}.cf-match-badge:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--cf-green-text);flex-shrink:0}.cf-divider{height:1px;background:#ffffff0d}.cf-card-actions{padding:10px 14px 12px;display:flex;gap:8px}.cf-form-head{padding:14px 14px 0}.cf-form-sub{font-size:12px;color:var(--cf-text-secondary);margin-top:4px}.cf-form-body{padding:12px 14px 14px}.cf-done-row{padding:13px 14px;display:flex;align-items:center;gap:11px}.cf-done-icon{width:38px;height:38px;border-radius:var(--cf-radius-sm);background:var(--cf-green-bg);border:1px solid var(--cf-green-border);display:flex;align-items:center;justify-content:center;color:var(--cf-green-text);flex-shrink:0}.cf-done-text{font-size:13px;color:var(--cf-text-secondary);line-height:1.5}.cf-done-text strong{color:#fff}.cf-btn-outline{flex:1;height:36px;border-radius:var(--cf-radius-sm);border:1px solid rgba(255,255,255,.1);background:transparent;font-size:13px;cursor:pointer;color:var(--cf-text-secondary);font-family:inherit;transition:all .15s}.cf-btn-outline:hover{border-color:#fff3;color:var(--cf-text)}.cf-btn-solid{flex:1;height:36px;border-radius:var(--cf-radius-sm);border:none;background:var(--cf-indigo);color:#fff;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s}.cf-btn-solid:hover:not(:disabled){background:var(--cf-indigo-hover)}.cf-btn-solid:disabled{opacity:.5;cursor:not-allowed}.cf-input{width:100%;height:40px;border:1px solid var(--cf-border-med);border-radius:var(--cf-radius-sm);padding:0 12px;font-size:14px;font-family:inherit;background:#ffffff0d;color:var(--cf-text);outline:none;transition:border-color .15s}.cf-input:focus{border-color:#6366f180}.cf-input::placeholder{color:var(--cf-text-muted)}.cf-input-bar{padding:12px 16px;border-top:1px solid var(--cf-border);background:var(--cf-bg);flex-shrink:0;position:relative;z-index:2}.cf-input-inner{max-width:680px;margin:0 auto;display:flex;gap:10px;align-items:flex-end}.cf-textarea{flex:1;border:1px solid var(--cf-border-med);border-radius:var(--cf-radius);padding:11px 14px;font-size:14px;font-family:inherit;color:var(--cf-text);background:var(--cf-surface);resize:none;outline:none;line-height:1.5;min-height:44px;max-height:120px;transition:border-color .15s}.cf-textarea:focus{border-color:#6366f180}.cf-textarea::placeholder{color:var(--cf-text-muted)}.cf-textarea:disabled{opacity:.5}.cf-send-btn{width:44px;height:44px;border-radius:var(--cf-radius);border:none;background:var(--cf-indigo);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.cf-send-btn:hover:not(:disabled){background:var(--cf-indigo-hover)}.cf-send-btn:disabled{opacity:.4;cursor:not-allowed}.cf-login-root{min-height:100dvh;background:var(--cf-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;font-family:DM Sans,system-ui,sans-serif;position:relative;overflow:hidden}.cf-login-root .cf-grid-bg{position:fixed}.cf-login-card{width:100%;max-width:380px;background:var(--cf-surface);border:1px solid var(--cf-border-med);border-radius:var(--cf-radius-lg);overflow:hidden;position:relative;z-index:1}.cf-login-brand{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 28px 24px}.cf-brand-mark--lg{width:52px;height:52px;border-radius:14px;background:var(--cf-indigo);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 0 24px var(--cf-indigo-glow)}.cf-login-heading{font-family:Syne,sans-serif;font-size:22px;font-weight:700;color:#fff;text-align:center;letter-spacing:-.4px}.cf-login-sub{font-size:13px;color:var(--cf-text-secondary);text-align:center;margin-top:-2px}.cf-mode-toggle{display:flex;margin:0 20px 16px;background:#ffffff0a;border:1px solid var(--cf-border);border-radius:var(--cf-radius-sm);padding:3px;gap:3px}.cf-mode-btn{flex:1;height:32px;border-radius:6px;border:none;background:transparent;font-size:13px;cursor:pointer;color:var(--cf-text-secondary);font-family:inherit;transition:all .15s}.cf-mode-btn--active{background:var(--cf-surface-raised);color:#fff;font-weight:500;box-shadow:0 0 0 1px var(--cf-border-med)}.cf-login-form{padding:20px 24px 28px;display:flex;flex-direction:column;gap:14px}.cf-field{display:flex;flex-direction:column;gap:6px}.cf-field-label{font-size:12px;font-weight:500;color:var(--cf-text-secondary);letter-spacing:.1px}.cf-back-link{display:block;margin-top:18px;font-size:13px;color:var(--cf-text-secondary);cursor:pointer;background:none;border:none;font-family:inherit;transition:color .15s;text-align:center;position:relative;z-index:1}.cf-back-link:hover{color:var(--cf-text)}@tailwind base;@tailwind components;@tailwind utilities;@layer base{*{box-sizing:border-box}body{background-color:#0a0a0f;color:#e5e7eb;font-family:DM Sans,sans-serif;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:#12121a}::-webkit-scrollbar-thumb{background:#1e1e2e;border-radius:2px}}@layer components{.glass{background:#12121acc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(99,102,241,.1)}.btn-primary{@apply bg-indigo-600 hover:bg-indigo-500 text-white font-medium px-5 py-2.5 rounded-xl transition-all duration-200 active:scale-95 disabled:opacity-40 disabled:cursor-not-allowed;}.btn-ghost{@apply border border-campus-border hover:border-campus-accent/40 text-campus-muted hover:text-white px-5 py-2.5 rounded-xl transition-all duration-200;}.input-base{@apply w-full bg-campus-surface border border-campus-border rounded-xl px-4 py-3 text-white placeholder-campus-muted focus:outline-none focus:border-indigo-500 transition-colors duration-200;}.card{@apply bg-campus-surface border border-campus-border rounded-2xl;}}.typing-dot{width:6px;height:6px;border-radius:50%;background:#6366f1;animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.message-enter{animation:fadeUp .3s ease forwards}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
