:root{--bg: #0b0b0f;--bg-grad-1: #11121a;--bg-grad-2: #0b0b0f;--surface: #16171f;--surface-2: #1d1f29;--border: #262833;--text: #f4f4f6;--muted: #9b9da9;--accent: #6d5efc;--accent-2: #a78bfa;--danger: #f87171;--ok: #34d399;--radius: 14px;--shadow: 0 10px 40px rgba(0, 0, 0, .45);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(900px 500px at 85% -10%,rgba(109,94,252,.18),transparent 60%),radial-gradient(700px 500px at 0% 110%,rgba(167,139,250,.12),transparent 55%),linear-gradient(180deg,var(--bg-grad-1),var(--bg-grad-2));background-attachment:fixed;color:var(--text)}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}.brand{display:inline-flex;align-items:center;gap:9px;font-weight:700;letter-spacing:-.02em;font-size:18px}.brand .mark{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:13px}.brand span{color:var(--muted);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;background:linear-gradient(135deg,var(--accent),#5a4af0);color:#fff;font-size:14px;font-weight:600;padding:11px 18px;border-radius:10px;cursor:pointer;transition:transform .08s ease,box-shadow .2s ease,opacity .2s ease;box-shadow:0 6px 20px #6d5efc59}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 26px #6d5efc73}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}.btn-github{background:#1f2230;border-color:var(--border);box-shadow:none}.btn-github:hover{background:#272a3a;box-shadow:0 8px 22px #00000059}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text);font-size:13px;font-weight:600;padding:7px 12px;border-radius:9px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn-ghost:hover{background:var(--surface-2)}.btn-ghost.danger{color:var(--danger)}.btn-ghost.danger:hover{background:#f871711f;border-color:#f8717166}.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:420px;background:linear-gradient(180deg,var(--surface),#121320);border:1px solid var(--border);border-radius:20px;padding:40px 34px;box-shadow:var(--shadow);text-align:center}.auth-card .brand{font-size:20px;margin-bottom:26px}.auth-card h1{font-size:24px;line-height:1.25;margin:0 0 10px;letter-spacing:-.02em}.auth-card .lead{color:var(--muted);margin:0 0 26px;font-size:15px}.auth-card .btn{width:100%;padding:13px}.auth-foot{color:var(--muted);font-size:12.5px;margin:22px 0 0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#0b0b0fb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.topbar .user{display:flex;align-items:center;gap:12px}.topbar .user .name{font-weight:600;font-size:14px}.avatar{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);object-fit:cover}.content{max-width:860px;margin:0 auto;padding:34px 24px 64px;display:grid;gap:22px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.panel-head{display:flex;align-items:center;gap:10px;margin:0 0 18px}.panel-head h2{font-size:16px;margin:0;letter-spacing:-.01em}.count{font-size:12px;font-weight:700;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 9px}.form{display:grid;gap:16px}.field{display:grid;gap:7px}.field label{font-size:13px;color:var(--muted);font-weight:600}.input{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:11px 13px;font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #6d5efc40}.dropzone{display:flex;align-items:center;gap:12px;border:1.5px dashed var(--border);border-radius:12px;padding:16px;cursor:pointer;color:var(--muted);background:var(--surface-2);transition:border-color .15s ease,color .15s ease}.dropzone:hover{border-color:var(--accent);color:var(--text)}.dropzone .dz-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#6d5efc26;color:var(--accent-2);flex:none}.dropzone .dz-text strong{display:block;color:var(--text);font-size:14px}.dropzone .dz-text span{font-size:12.5px}.dropzone input[type=file]{display:none}.form-actions{display:flex;justify-content:flex-end}.alert{margin-top:4px;background:#f871711a;border:1px solid rgba(248,113,113,.35);color:#fca5a5;border-radius:10px;padding:10px 13px;font-size:13px}.projects{list-style:none;margin:0;padding:0;display:grid;gap:12px}.project{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);transition:border-color .15s ease,transform .08s ease}.project:hover{border-color:#34384a;transform:translateY(-1px)}.project-main{display:grid;gap:3px;min-width:0}.project-title{display:flex;align-items:center;gap:9px;font-weight:600;font-size:14.5px}.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px #34d39926;flex:none}.project-url{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-actions{display:flex;gap:8px;flex:none}.empty{text-align:center;padding:40px 20px;color:var(--muted);border:1.5px dashed var(--border);border-radius:12px}.empty .emoji{font-size:30px;display:block;margin-bottom:8px}.loading{display:grid;place-items:center;min-height:60vh;color:var(--muted)}
