:root{--bg: #F5F3FC;--bg-2: #EDE9FB;--surface: #FFFFFF;--surface-2: #F3F1FA;--ink: #1E1B2E;--ink-soft: #6B6580;--border: #E4E0F5;--accent: #6D5AE0;--accent-2: #FF6B4A;--accent-ink: #FFFFFF;--danger: #E5484D;--grad-1: linear-gradient(135deg, #6D5AE0, #9B5DE0);--grad-2: linear-gradient(135deg, #3DAEFF, #3DE0D8);--grad-3: linear-gradient(135deg, #FF6B4A, #FFB23D);--grad-4: linear-gradient(135deg, #FF5CA8, #A85CFF);--grad-5: linear-gradient(135deg, #3DE0A0, #3DAEFF);--grad-flagship: linear-gradient(135deg, #6D5AE0, #FF5CA8)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 600px at 20% -10%,var(--bg-2),var(--bg));color:var(--ink);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,.display{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;letter-spacing:-.02em;margin:0}.mono{font-family:JetBrains Mono,ui-monospace,monospace}a{color:var(--accent)}.eyebrow{font-family:Plus Jakarta Sans,sans-serif;font-size:.8rem;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.5rem;font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:.92rem;border:none;border-radius:12px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.btn-primary{background:var(--grad-1);color:var(--accent-ink);box-shadow:0 8px 24px -8px #6d5ae08c}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 28px -8px #6d5ae0a6}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:1.75rem;box-shadow:0 4px 20px -10px #1e1b2e14}.field{margin-bottom:1.1rem}.field label{display:block;font-family:Plus Jakarta Sans,sans-serif;font-size:.78rem;font-weight:700;color:var(--ink-soft);margin-bottom:.4rem}.field input,.field textarea{width:100%;padding:.7rem .9rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.98rem;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;color:var(--ink)}.field textarea{resize:vertical;min-height:4.5rem}.field input:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;background:var(--surface)}.error-msg{font-family:Plus Jakarta Sans,sans-serif;font-size:.85rem;font-weight:600;color:var(--danger);margin-top:.6rem}.app-shell{min-height:100vh}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 2rem;background:#ffffffb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.top-bar .brand{font-size:1.35rem;background:var(--grad-1);-webkit-background-clip:text;background-clip:text;color:transparent}.container{max-width:1080px;margin:0 auto;padding:2.5rem 1.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem;margin-top:1.5rem}.func-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:1.5rem;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 4px 16px -10px #1e1b2e1a}.func-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px -12px #1e1b2e33}.func-card.active{outline:2px solid var(--accent);outline-offset:2px}.func-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:.9rem;box-shadow:0 6px 16px -6px #1e1b2e59}.func-card .tag{font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:.3rem}.func-card h3{font-size:1.1rem;margin-bottom:.35rem}.func-card p{font-size:.88rem;color:var(--ink-soft);margin:0}.func-card.flagship{background:var(--grad-flagship);border:none}.func-card.flagship .tag{color:#ffffffbf}.func-card.flagship h3{color:#fff}.func-card.flagship p{color:#ffffffd9}.func-card.flagship .func-icon{background:#ffffff40!important;box-shadow:none}.output-box{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:16px;padding:1.4rem 1.6rem;margin-top:1.5rem;white-space:pre-wrap;font-size:.95rem;line-height:1.65;max-height:480px;overflow-y:auto;box-shadow:0 4px 20px -10px #1e1b2e1a}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--accent-ink);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{width:100%;max-width:420px}.login-title{font-size:2.2rem;margin-bottom:.3rem}.login-sub{color:var(--ink-soft);margin-bottom:1.75rem}.switch-link{font-family:Plus Jakarta Sans,sans-serif;font-size:.85rem;margin-top:1rem;text-align:center;color:var(--ink-soft)}
