*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0f;--bg2: #141417;--bg3: #1c1c21;--border: #2a2a32;--border2: #3a3a45;--text: #f0f0f5;--text2: #9090a0;--text3: #6060708;--accent: #6366f1;--accent2: #818cf8;--accent-bg: rgba(99, 102, 241, .12);--green: #22c55e;--green-bg: rgba(34, 197, 94, .12);--red: #ef4444;--red-bg: rgba(239, 68, 68, .12);--yellow: #f59e0b;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0,0,0,.4);--font-display: "Syne", sans-serif;--font-body: "Inter", sans-serif}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);border:none;font-size:14px;font-weight:500;transition:all .15s ease;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent2);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--border2);color:var(--text)}.btn-danger{background:var(--red-bg);color:var(--red);border:1px solid rgba(239,68,68,.2)}.btn-danger:hover{background:#ef444433}.btn-sm{padding:6px 12px;font-size:13px}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.input{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:10px 14px;font-size:14px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text2)}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236060708' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}label{display:block;font-size:13px;color:var(--text2);margin-bottom:6px;font-weight:500}.form-group{margin-bottom:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:28px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow);animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-title{font-family:var(--font-display);font-size:20px;font-weight:700;margin-bottom:20px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:500}.badge-accent{background:var(--accent-bg);color:var(--accent2)}.badge-green{background:var(--green-bg);color:var(--green)}.badge-red{background:var(--red-bg);color:var(--red)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-loading{display:flex;align-items:center;justify-content:center;min-height:100vh}.divider{height:1px;background:var(--border);margin:20px 0}.empty-state{text-align:center;padding:48px 24px;color:var(--text2)}.empty-state .icon{font-size:40px;margin-bottom:12px}.empty-state h3{font-family:var(--font-display);font-size:16px;color:var(--text);margin-bottom:6px}.toast{position:fixed;bottom:24px;right:24px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:12px 18px;font-size:14px;z-index:2000;animation:toastIn .2s ease;max-width:320px}.toast.success{border-color:#22c55e66;color:var(--green)}.toast.error{border-color:#ef444466;color:var(--red)}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.footer{text-align:center;padding:24px;color:var(--text2);font-size:12px;border-top:1px solid var(--border);margin-top:auto}
