*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--font:"DM Sans",system-ui,sans-serif;--mono:"DM Mono",monospace;--bg:#f5f4f0;--bg2:#eceae4;--surface:#fff;--border:#e2e0d8;--border2:#d4d2ca;--text:#1a1916;--text2:#6b6860;--text3:#a8a69e;--accent:#2d5be3;--accent2:#1a3db5;--accent-l:#eef1fd;--accent-b:#c7d2f8;--red:#dc2626;--red-l:#fef2f2;--green:#16a34a;--green-l:#f0fdf4;--orange:#ea580c;--orange-l:#fff7ed;--purple:#7c3aed;--purple-l:#f5f3ff;--radius:10px;--radius-lg:16px;--shadow:0 1px 3px #00000014,0 1px 2px #0000000f;--shadow-md:0 4px 12px #0000001a,0 2px 4px #0000000f;--shadow-lg:0 16px 40px #0000001f,0 4px 8px #0000000f}body{-webkit-font-smoothing:antialiased;background:#f5f4f0;background:var(--bg);color:#1a1916;color:var(--text);font-family:DM Sans,system-ui,sans-serif;font-family:var(--font);font-size:14px;line-height:1.5;min-height:100vh}::-webkit-scrollbar{height:5px;width:5px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#d4d2ca;background:var(--border2);border-radius:99px}.btn{align-items:center;border:none;border-radius:10px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:DM Sans,system-ui,sans-serif;font-family:var(--font);font-size:13px;font-weight:600;gap:6px;padding:8px 16px;text-decoration:none;transition:all .15s;white-space:nowrap}.btn-primary{background:#2d5be3;background:var(--accent);box-shadow:0 1px 2px #2d5be34d;color:#fff}.btn-primary:hover{background:#1a3db5;background:var(--accent2);box-shadow:0 4px 12px #2d5be359;transform:translateY(-1px)}.btn-secondary{background:#fff;background:var(--surface);border:1px solid #e2e0d8;border:1px solid var(--border);box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f;box-shadow:var(--shadow);color:#1a1916;color:var(--text)}.btn-secondary:hover{background:#f5f4f0;background:var(--bg);border-color:#d4d2ca;border-color:var(--border2)}.btn-danger{background:#fef2f2;background:var(--red-l);border:1px solid #fecaca;color:#dc2626;color:var(--red)}.btn-danger:hover{background:#fee2e2}.btn-ghost{background:#0000;color:#6b6860;color:var(--text2)}.btn-ghost:hover{background:#eceae4;background:var(--bg2);color:#1a1916;color:var(--text)}.btn-sm{border-radius:8px;font-size:12px;gap:4px;padding:5px 11px}.btn-xs{border-radius:6px;font-size:11px;gap:3px;padding:3px 8px}.btn:disabled{cursor:not-allowed;opacity:.45;transform:none!important}.input{background:#fff;background:var(--surface);border:1.5px solid #e2e0d8;border:1.5px solid var(--border);border-radius:10px;border-radius:var(--radius);color:#1a1916;color:var(--text);font-family:DM Sans,system-ui,sans-serif;font-family:var(--font);font-size:13px;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.input:focus{border-color:#2d5be3;border-color:var(--accent);box-shadow:0 0 0 3px #2d5be31f}.input::placeholder{color:#a8a69e;color:var(--text3)}.input:disabled{background:#eceae4;background:var(--bg2);opacity:.6}.label{color:#6b6860;color:var(--text2);display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:5px;text-transform:uppercase}.card{background:#fff;background:var(--surface);border:1px solid #e2e0d8;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f;box-shadow:var(--shadow)}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:600;gap:4px;padding:2px 8px}.badge-blue{background:#eef1fd;background:var(--accent-l);border:1px solid #c7d2f8;border:1px solid var(--accent-b);color:#2d5be3;color:var(--accent)}.badge-red{background:#fef2f2;background:var(--red-l);border:1px solid #fecaca;color:#dc2626;color:var(--red)}.badge-green{background:#f0fdf4;background:var(--green-l);border:1px solid #bbf7d0;color:#16a34a;color:var(--green)}.badge-orange{background:#fff7ed;background:var(--orange-l);border:1px solid #fed7aa;color:#ea580c;color:var(--orange)}.badge-purple{background:#f5f3ff;background:var(--purple-l);border:1px solid #ddd6fe;color:#7c3aed;color:var(--purple)}.badge-gray{background:#eceae4;background:var(--bg2);border:1px solid #e2e0d8;border:1px solid var(--border);color:#6b6860;color:var(--text2)}.modal-bg{align-items:center;animation:fadeIn .15s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a191673;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal{animation:slideUp .2s ease;background:#fff;background:var(--surface);border:1px solid #e2e0d8;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 16px 40px #0000001f,0 4px 8px #0000000f;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;max-width:500px;width:100%}.modal-head{align-items:center;border-bottom:1px solid #e2e0d8;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px 16px}.modal-head h2{font-size:16px;font-weight:700}.modal-body{flex:1 1;overflow-y:auto;padding:20px 24px}.modal-foot{border-top:1px solid #e2e0d8;border-top:1px solid var(--border);display:flex;flex-shrink:0;gap:8px;justify-content:flex-end;padding:16px 24px}.fg{margin-bottom:14px}.toasts{bottom:24px;display:flex;flex-direction:column;gap:8px;pointer-events:none;position:fixed;right:24px;z-index:9999}.toast{align-items:center;animation:slideUp .25s ease;background:#1a1916;background:var(--text);border-radius:10px;box-shadow:0 16px 40px #0000001f,0 4px 8px #0000000f;box-shadow:var(--shadow-lg);color:#fff;display:flex;font-size:13px;font-weight:500;gap:9px;min-width:240px;padding:11px 16px;pointer-events:all}.toast.ok{background:#15803d}.toast.err{background:#dc2626;background:var(--red)}.toast.inf{background:#2d5be3;background:var(--accent)}.spin{animation:rotate .7s linear infinite;border:3px solid #e2e0d8;border-radius:50%;border-top-color:#2d5be3;border:3px solid var(--border);border-top-color:var(--accent);height:32px;width:32px}.spin-sm{border-width:2px;height:16px;width:16px}.div{background:#e2e0d8;background:var(--border);height:1px}.empty{color:#a8a69e;color:var(--text3);padding:48px 20px;text-align:center}.empty i{display:block;font-size:32px;margin-bottom:12px}.empty p{font-size:13px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes rotate{to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.4959b28b.css.map*/