:root{--bg:#0b1220;--bg2:#0f172a;--card:#111c33;--card2:#16233f;--line:rgba(148,163,184,.16);--txt:#e2e8f0;--mut:#94a3b8;--acc:#38bdf8;--acc2:#818cf8;--ok:#22c55e;--warn:#f59e0b;--bad:#ef4444;--r:14px;--sh:0 10px 30px rgba(0,0,0,.35)}[data-theme=light]{--bg:#f1f5f9;--bg2:#ffffff;--card:#ffffff;--card2:#f8fafc;--line:rgba(15,23,42,.1);--txt:#0f172a;--mut:#64748b;--sh:0 10px 25px rgba(15,23,42,.08)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1200px 600px at 20% -10%,rgba(56,189,248,.18),transparent),radial-gradient(1000px 500px at 90% 0%,rgba(129,140,248,.18),transparent),var(--bg);color:var(--txt);font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,Arial}#root{min-height:100vh}.top{position:sticky;top:0;z-index:20;display:flex;gap:12px;align-items:center;padding:12px 18px;background:color-mix(in srgb,var(--bg2) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.logo{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.2px}.logo .mark{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,var(--acc),var(--acc2));display:grid;place-items:center;color:#04121f;font-weight:900;box-shadow:var(--sh)}.search{flex:1;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;max-width:560px}.search input{flex:1;background:transparent;border:0;outline:0;color:var(--txt);font-size:14px}.btn{border:1px solid var(--line);background:var(--card);color:var(--txt);border-radius:10px;padding:8px 12px;cursor:pointer;font-weight:600;font-size:13px;transition:.18s}.btn:hover{transform:translateY(-1px);border-color:var(--acc)}.btn.pri{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#04121f;border:0}.btn.ghost{background:transparent}.layout{display:grid;grid-template-columns:250px 1fr 420px;gap:14px;padding:14px 18px;max-width:1500px;margin:0 auto}@media (max-width:1150px){.layout{grid-template-columns:220px 1fr}.preview{grid-column:1/-1}}@media (max-width:760px){.layout{grid-template-columns:1fr}.side{display:none}}.card{background:linear-gradient(180deg,var(--card),var(--card2));border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}.side{padding:14px;height:fit-content;position:sticky;top:70px}.side h4{margin:10px 4px 8px;font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.8px}.b-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;border:1px solid transparent;font-size:14px}.b-item.on{background:#38bdf81f;border-color:#38bdf859}.b-item:hover{background:#94a3b81a}.dot{width:9px;height:9px;border-radius:50%}.quota{margin-top:12px;padding:12px;border-radius:12px;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);font-size:13px}.bar{height:8px;border-radius:99px;background:#94a3b833;overflow:hidden;margin-top:8px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--ok),var(--acc))}.main{padding:14px;min-height:60vh}.crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mut);margin-bottom:10px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.seg{display:flex;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{border:0;background:transparent;color:var(--mut);padding:8px 12px;cursor:pointer}.seg button.on{background:#38bdf829;color:var(--txt)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.fcard{padding:12px;cursor:pointer;transition:.18s;position:relative}.fcard:hover{transform:translateY(-2px);border-color:var(--acc)}.fcard.sel{outline:2px solid var(--acc)}.fico{font-size:30px}.fname{font-size:13px;font-weight:700;margin-top:8px;word-break:break-all}.fmeta{font-size:11px;color:var(--mut)}.list-row{display:flex;gap:10px;align-items:center;padding:10px;border-bottom:1px solid var(--line);cursor:pointer}.list-row:hover{background:#94a3b814}.preview{padding:0;overflow:hidden;height:fit-content;position:sticky;top:70px;max-height:calc(100vh - 90px);display:flex;flex-direction:column}.p-head{padding:14px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center}.tabs{display:flex;gap:6px;padding:10px 14px 0}.tab{border:1px solid var(--line);border-bottom:0;background:var(--card2);padding:8px 12px;border-radius:10px 10px 0 0;cursor:pointer;font-size:13px;color:var(--mut)}.tab.on{color:var(--txt);background:var(--card);border-color:var(--acc)}.p-body{padding:14px;overflow:auto}.code{width:100%;min-height:280px;background:#020617;color:#e2e8f0;border:1px solid var(--line);border-radius:12px;padding:12px;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.6;resize:vertical}[data-theme=light] .code{background:#0f172a;color:#e2e8f0}.console{background:#020617;color:#4ade80;border-radius:12px;padding:12px;font-family:ui-monospace,monospace;font-size:12.5px;white-space:pre-wrap;min-height:110px;margin-top:10px}.empty{border:1px dashed var(--line);border-radius:12px;padding:26px;text-align:center;color:var(--mut)}.drop{border:1.5px dashed rgba(56,189,248,.5);border-radius:12px;padding:14px;text-align:center;color:var(--mut);margin-bottom:12px}.toast{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast div{background:var(--card);border:1px solid var(--acc);padding:10px 14px;border-radius:12px;box-shadow:var(--sh);font-size:13px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061799;display:grid;place-items:center;z-index:60;padding:16px}.modal .box{max-width:520px;width:100%;padding:18px}.row{display:flex;gap:8px;align-items:center}.kbd{background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-size:12px}iframe.view{width:100%;height:56vh;border:1px solid var(--line);border-radius:12px;background:#fff}.badge{font-size:11px;padding:3px 9px;border-radius:99px;border:1px solid var(--line);color:var(--mut)}.badge.demo{color:#04121f;background:linear-gradient(135deg,#fde68a,#f59e0b);border:0;font-weight:800}.badge.cloud{color:#04121f;background:linear-gradient(135deg,#86efac,#38bdf8);border:0;font-weight:800}
