*{box-sizing:border-box}body{background:radial-gradient(circle at 10% 10%,#a78bfa59,#0000 35%),radial-gradient(circle at 90% 0,#c084fc40,#0000 28%),linear-gradient(#f7f1ff 0%,#f6f7ff 100%);margin:0;font-family:Segoe UI,PingFang TC,Noto Sans TC,system-ui,sans-serif}#root{min-height:100vh}.app{color:#1f1b2d;max-width:1200px;margin:0 auto;padding:20px}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{width:min(460px,100%)}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-error{color:#b91c1c;margin:0;font-size:13px}.topbar{background:linear-gradient(120deg,#4c1d95 0%,#6d28d9 55%,#7c3aed 100%);border:1px solid #ffffff38;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex;box-shadow:0 16px 40px #4c1d9538}.brand{color:#fff;align-items:center;gap:10px;display:flex}.brand h1{margin:0;font-size:20px;font-weight:700}.controls{color:#fff;background:#ffffff29;border:1px solid #ffffff42;border-radius:12px;align-items:center;gap:8px;padding:6px 10px;display:flex}.controls select{background:#fffffff2;border:none;border-radius:8px;min-width:150px;padding:6px 10px}.ghost-btn{color:#fff;box-shadow:none;background:#ffffff26;border:1px solid #ffffff40}.ghost-btn:hover:not(:disabled){box-shadow:none;background:#ffffff40}.tabs{gap:8px;margin-top:14px;display:flex}.tabs button{color:#3b0764;cursor:pointer;background:#faf5ff;border:1px solid #ddd6fe;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-weight:600;transition:all .2s;display:flex}.tabs .active{color:#fff;background:linear-gradient(120deg,#6d28d9 0%,#7c3aed 100%);border-color:#7c3aed;box-shadow:0 8px 20px #7c3aed59}.alert{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;display:flex}.grid{grid-template-columns:minmax(340px,1fr) minmax(380px,1.2fr);gap:16px;margin-top:14px;display:grid}.card{background:#fffffff7;border:1px solid #e9ddff;border-radius:16px;flex-direction:column;gap:9px;padding:16px;display:flex;box-shadow:0 12px 28px #4c1d9514}.card h2{color:#3b0764;margin:0 0 6px;font-size:18px}label{color:#5b21b6;font-size:13px;font-weight:600}textarea,select,input,button{font:inherit}textarea,select,input{background:#fff;border:1px solid #d8b4fe;border-radius:10px;padding:9px 11px;transition:border-color .2s,box-shadow .2s}textarea:focus,select:focus,input:focus{border-color:#8b5cf6;outline:none;box-shadow:0 0 0 3px #8b5cf62e}textarea{min-height:84px}textarea.auto-grow{resize:none;overflow-y:hidden}button{color:#fff;cursor:pointer;background:linear-gradient(120deg,#6d28d9 0%,#7c3aed 100%);border:1px solid #7c3aed;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:9px 12px;font-weight:600;transition:transform .15s,box-shadow .2s,filter .2s;display:inline-flex}button:hover:not(:disabled){filter:brightness(1.02);transform:translateY(-1px);box-shadow:0 10px 18px #6d28d947}button:disabled{opacity:.55;cursor:not-allowed}.result textarea{min-height:180px}.row{gap:8px;display:flex}.row input{flex:1}.meta{color:#6d28d9;align-items:center;gap:4px;font-size:13px;display:flex}.manual{margin-top:14px;line-height:1.7}.manual h3{margin:10px 0 4px;font-size:16px}.manual ul,.manual ol{margin:0 0 8px;padding-left:20px}.variant-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.variant-card{background:#fcfaff;border:1px solid #ddd6fe;border-radius:12px;flex-direction:column;gap:6px;padding:10px;display:flex}.variant-card p{margin:0}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=980px){.app{padding:12px}.topbar{flex-direction:column;align-items:stretch}.controls{justify-content:space-between}.grid,.variant-grid{grid-template-columns:1fr}}
