@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--bg:#0f0f12;--panel:#14141a;--muted:#a3a3b2;--text:#e9e9f2;--accent:#7c5cff;--accent-2:#a18bff;--ring:#2a2a37;--ok:#12c48b;--warn:#ffcc00;--danger:#ff6b6b}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:linear-gradient(180deg,#0e0e12 0%,#121217 100%);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{opacity:.9}
.container{max-width:1200px;margin:0 auto;padding:24px}
.topbar{position:sticky;top:0;z-index:50;background:#0f0f12eb;border-bottom:1px solid #1d1d26;backdrop-filter:blur(8px)}
.topbar-inner{display:flex;align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:14px 24px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:6px 10px;border-radius:999px;background:#201f2b;color:#b6b6c9;border:1px solid #29283a}
.brand{display:flex;align-items:center;gap:10px;font-weight:700}
.brand-dot{width:24px;height:24px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2))}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:14px;background:var(--accent);color:#fff;border:0;font-weight:600;cursor:pointer}
.btn.secondary{background:#232233;color:#d7d7e8;border:1px solid #2f2f45}
.btn.ghost{background:transparent;color:#cfcfe6;border:1px solid #2d2d3f}
.btn:disabled{opacity:.6;cursor:not-allowed}
.grid{display:grid;gap:16px}
.grid.cols-2{grid-template-columns:1.2fr .8fr}
.card{background:rgba(20,20,26,.8);border:1px solid #1f1f2b;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.card .hd{padding:18px 20px;border-bottom:1px solid #1f1f2b;display:flex;align-items:center;justify-content:space-between}
.card .bd{padding:20px}
.h1{font-size:28px;font-weight:800;letter-spacing:.2px;margin:10px 0}
.h2{font-size:18px;font-weight:700;margin:0}
.mono{font-family:ui-monospace,Consolas,monospace}
.muted{color:var(--muted)}
.row{display:flex;gap:10px;align-items:center}
.input{width:100%;padding:14px 16px;background:#15151c;border:1px solid #262638;color:#e9e9f2;border-radius:14px;outline:none}
.input:focus{border-color:#3a3a57;box-shadow:0 0 0 4px rgba(124,92,255,.08)}
.input-lg{padding:18px 18px;font-size:16px;border-radius:16px}
.tag{font-size:12px;padding:6px 10px;border-radius:999px;background:#1b1b27;border:1px solid #2a2a3e;color:#c4c4d7}
.toolbar{display:flex;gap:8px;flex-wrap:wrap}
.hero{display:flex;flex-direction:column;gap:14px}
.hero-box{display:flex;gap:10px;align-items:center;background:#13131a;border:1px solid #232338;border-radius:18px;padding:12px}
.hero-input{flex:1;display:flex;gap:10px;align-items:center}
.hero-right{display:flex;gap:10px;align-items:center}
.pill{padding:6px 10px;border-radius:999px;background:#1b1b26;border:1px solid #28283a;color:#cfcfe6;font-size:12px}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tool{background:#14141b;border:1px solid #212134;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px}
.tool .ttl{font-weight:700}
.kv{display:flex;align-items:center;gap:8px}
.preview{aspect-ratio:9/16;background:linear-gradient(180deg,#1a1a24,#13131b);border:1px dashed #2a2a3e;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#7f7fa3}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.list{display:flex;flex-direction:column;gap:10px}
.list .item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid #23233a;border-radius:12px;background:#14141b}
@media (max-width:960px){.grid.cols-2{grid-template-columns:1fr}.tool-grid{grid-template-columns:1fr 1fr}}
.progress{width:100%;height:10px;background:#1b1b27;border:1px solid #2a2a3e;border-radius:999px;overflow:hidden}
.progress>span{display:block;height:100%;width:0%;background:linear-gradient(90deg,#7c5cff,#a18bff);transition:width .6s ease}
.spinner{width:14px;height:14px;border:2px solid #3a3a57;border-top-color:#a18bff;border-radius:50%;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
